bat 批量移動/刪除文件/文件夾

背景:

在一個文件夾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

就不多解釋了,我也沒完全弄明白。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章