背景:
在一個文件夾A內,有若干個子文件夾,b1, b2, b3, ..., bn,每個子文件夾bx中,有文件或者文件夾。現在想吧所有bx及其子文件夾中的文件都移動到文件夾A下(或任意位置)。
方法:
@echo off
for /r %%a in (*.xlsx) do (
echo %%a
move "%%a" "%cd%"
)
pause
解釋:
/r 遞歸掃描當前文件夾及其子文件夾
%%a 當前指向的文件路徑
in 條件,對滿足此條件的執行後邊的 do 裏的內容,這裏只定移動後綴名是 xlsx 的文件
do 執行移動操作,這裏邊還用 echo 做了個輸出,可有可無
move [source] [target] 移動操作,這裏注意,這兩個地址中不能包含空格,如果有,要像代碼中用引號把這兩個變量括起來。
%cd% 只當前目錄,也就是這個bat文件所在的目錄
刪除空的文件夾:
當上述操作完成後,把空殼文件夾刪除的需求可能就產生了。代碼如下:
@echo off
for /f "delims=" %%a in ('dir /ad /b /s %cd%^|sort /r') do (
rd "%%a">nul 2>nul &&echo 空目錄"%%a"成功刪除!
)
pause
就不多解釋了,我也沒完全弄明白。。。。