1. 把當前目錄下所有子文件夾中的.tar/.rar/.zip文件復制到同一目錄下
- 當前目錄有多個子文件夾,有的子文件夾有內容,有的是空的,需要將子文件夾中的壓縮包復制到一個相同的目錄(D:/新建文件夾/)下
- 在命令行窗口進入當前目錄,並輸入
echo off
,關閉其他所有命令(不包括本身這條命令)的回顯(只是為了方便看,不關閉直接第二步也行)
- 輸入處理命令
- 在cmd中只需要一個%;在bat批處理中要用%%,因為編譯器編譯的時候會屏蔽(或者說消除?)一個%。
for /f "delims=" %i in ('dir /s/b') do (
if exist "%i\*.rar" copy "%i\*.rar" D:\test\新建文件夾
if exist "%i\*.zip" copy "%i\*.zip" D:\test\新建文件夾
if exist "%i\*.tar" copy "%i\*.tar" D:\test\新建文件夾
)
- 回車,顯示結果,復制完成
2. 在源目錄下復制指定文件名的文件到目標目錄,並給目標目錄下每個文件編號,刪除原文件(bat)
- 一個源文件夾中有多個子文件夾,把該文件夾下所有文件名中包含“報告”的.doc或.docx文件移動到指定的文件夾下,並給每個文件加上編號,然后刪除原目錄下的已經被復制過的文件
- 在源目錄下,新建一個.txt文件,輸入以下代碼
變量a用來記錄編號
使用xcopy的時候會詢問是否是目錄(F = 文件,D = 目錄),一遍一遍輸入太麻煩,用echo f |
可以自動輸入f表示這是一個文件,當然也可以把f改成d。
%i
包括文件名和擴展名,%%~ni
表示僅將 %i 擴展到一個文件名,而%~xi
表示僅將 %i 擴展到一個文件擴展名
@echo off&setlocal enabledelayedexpansion
set a=0
for /f "tokens=* delims=" %%i in ('dir /s/b *報告*.doc*') do (
set /a a=a+1
echo f | xcopy "%%i" "D:\test\報告\!a!-%%~ni.doc"
del "%%i"
)
pause
- 另存為.bat文件,注意在“編碼”處選擇“ANSI”(默認是UTF-8,中文字符無法表達,會亂碼)
- 雙擊.bat文件直接運行,彈出命令行窗口顯示運行結果
- 查看目標文件夾
3. 將源目錄下的所有文件編號重命名
- 該目錄下只有.doc或.docx文件,把這些文件全部命名為“三位數編號-報告.docx”,編號不足三位數用0補足。
- 在該目錄下新建一個.txt文件,輸入以下代碼,並另存為.bat文件(選擇ANSI編碼)
變量a計數,fn補足數位
fn:~-4
表示截取fn中倒數第4個位以后的字符,即三個字符。
@echo off&setlocal enabledelayedexpansion
set a=0
for /f "delims=" %%i in ('dir /a-d /b *.doc*') do (
set /a a=a+1
set fn="000!a!"
ren "%%i" "!fn:~-4!-報告.docx"
)
pause
- 雙擊.bat文件運行,文件重命名成功。