天天看點

bat生成工具(批量 删除檔案/複制檔案/删除檔案夾/重命名檔案)

Batch檔案能完成一些批量重複操作。不想在每次用到重新編寫一個.bat檔案,是以這裡用一個工具(.bat)去生成一個用于具體批量操作的.bat檔案。

工具的batch代碼在文檔的最後面。建立一個文本文檔,将代碼黏貼到文檔中,将檔案類型改為bat,這時候就得到一個.bat檔案(bat生成.bat)。

輕按兩下 bat生成.bat,能看到如下的界面。這裡隻實作了4個簡單的功能,可以在這個基礎上添加新的功能。後面對這4個功能的使用進行說明。

bat生成工具(批量 删除檔案/複制檔案/删除檔案夾/重命名檔案)

1. 批量删除檔案夾及其内的所有檔案

删除該目錄樹下所有指定名稱的檔案夾和檔案夾下所有子檔案夾和檔案。

輕按兩下 bat生成.bat,進入視窗,進行如下操作:

  • 提示 Choice,輸入1,回車
  • 提示 FolderName,輸入要删除的檔案夾名稱(Delete1),回車
  • 重新提示Choice:如果無其他操作,輸入Q,回車,退出視窗;如果還需要其他批量操作,重複上述步驟。
    bat生成工具(批量 删除檔案/複制檔案/删除檔案夾/重命名檔案)
    此時會在bat生成.bat檔案相同路徑下生成一個file.bat檔案。
    bat生成工具(批量 删除檔案/複制檔案/删除檔案夾/重命名檔案)
    将file.bat檔案放置于某個目錄下,輕按兩下file.bat檔案,就會删除該目錄樹下所有名為Delete1(根據自己設定)的檔案夾和檔案夾下所有子檔案夾和檔案。

2. 批量複制

複制指定檔案到所有指定名稱的檔案夾下,如已有該檔案,則進行替換

輕按兩下 bat生成.bat,進入視窗,進行如下操作:

  • 提示 Choice,輸入2,回車
  • 提示 CopyFileName,輸入要複制檔案的檔案名,回車
  • 提示CopyFolderName,輸入檔案複制的目标目錄,回車
  • 重新提示Choice:如果無其他操作,輸入Q,回車,退出視窗;如果還需要其他批量操作,重複上述步驟。
    bat生成工具(批量 删除檔案/複制檔案/删除檔案夾/重命名檔案)
    此時會在bat生成.bat檔案相同路徑下生成一個file.bat檔案。

将file.bat和New.txt檔案放置于某個目錄下,輕按兩下file.bat檔案,就會将New.txt複制到該目錄下所有的Test0檔案夾下。

3. 删除檔案

删除目錄樹下所有指定檔案

**輕按兩下 bat生成.bat,進入視窗,進行如下操作:

  • 提示 Choice,輸入3,回車
  • 提示 DelFileName,輸入要删除檔案的檔案名,回車
  • 重新提示Choice:如果無其他操作,輸入Q,回車,退出視窗;如果還需要其他批量操作,重複上述步驟。
    bat生成工具(批量 删除檔案/複制檔案/删除檔案夾/重命名檔案)
    此時會在bat生成.bat檔案相同路徑下生成一個file.bat檔案。

将file.bat檔案放置于某個目錄下,輕按兩下file.bat檔案,就會删除該目錄樹下所有的New.txt檔案。

4. 重命名檔案

這裡的作用就相對較多了。下面對批量修改檔案類型進行了詳細說明。其實看完批量修改檔案類型說明就應該明白了該操作的原理了。

執行該file.bat(由 bat生成.bat 生成)檔案時,會将該目錄下的所有檔案(不包括檔案夾)看成若幹個字元串(包括"."以及檔案的字尾名),然後進行搜尋和替換的工作。

  • 要對所有檔案進行操作,File type設定可以使用通配符*
  • 限定待操作檔案的類型,如隻對txt檔案操作,File type可以設定成 *.txt
  • 如果檔案名存在多個點“.”,就可能造成預期之外的修改。如new.txt.txt可能内改為new.c.c

批量修改檔案類型

**輕按兩下 bat生成.bat,進入視窗,進行如下操作:

  1. 提示 Choice,輸入4,回車
  2. 提示 File type,輸入檔案類型,如 *,回車
  3. 提示 Find what,輸入待替換的檔案類型,如 .c,回車
  4. 提示 Replace with,輸入要修改為什麼類型,如 .txt,回車
  5. 重新提示Choice:如果無其他操作,輸入Q,回車,退出視窗;如果還需要其他批量操作,重複上述步驟。
    bat生成工具(批量 删除檔案/複制檔案/删除檔案夾/重命名檔案)
    此時會在bat生成.bat檔案相同路徑下生成一個file.bat檔案。

将file.bat檔案放置于待修改檔案相同目錄下,輕按兩下輕按兩下file.bat檔案,就會将該路徑下(僅該目錄,不包括)的所有c檔案修改為txt檔案。

修改前

bat生成工具(批量 删除檔案/複制檔案/删除檔案夾/重命名檔案)

修改後

bat生成工具(批量 删除檔案/複制檔案/删除檔案夾/重命名檔案)
@echo off
cls
title Create bat file
set ifo=abcdefghijklmnopqrstuvwxyz0123456789

cls
color 0A
:menu
echo.
echo      ================================
echo      Select operation, press Enter
echo      ================================
echo.
echo      1. Delete folder, delete all files in folder.
echo.
echo      2. Copy file to folder.
echo.
echo      3. Delete files.
echo.
echo      4. Rename files.(act on the same level of catalog files)
echo.
echo      Q. Quit
echo.

echo @echo off>file.bat

:ChoiceOperation
set choice=
set /p choice=          Choice:
if not "%choice%"=="" set choice=%choice:~0,1%
if /i "%choice%"=="1" goto RemoveFolders
if /i "%choice%"=="2" goto CopyFile
if /i "%choice%"=="3" goto DeleteFiles
if /i "%choice%"=="4" goto RenameFiles
if /i "%choice%"=="Q" goto endd
echo Invalid, again
echo.
goto ChoiceOperation

REM 移除目錄樹下的檔案夾
:RemoveFolders
echo RemoveFolders
set RemFchoice=
set /p RemFchoice=          FolderName:
set str1=for /r . %%%%d in (.) do rd /s /q "%%%%d\
set str1=%str1%%RemFchoice%"
set str2= %ifo:~28,1%
set str1=%str1%%str2%
echo %str1%^>nul >>file.bat
echo RemoveFolders OK
echo.
goto ChoiceOperation

REM 複制檔案到目錄樹下的特定目錄
:CopyFile
echo CopyFile
set CopyFileChoice=
set /p CopyFileChoice=    CopyFileName:
set CopyFolderChoice=
set /p CopyFolderChoice=    CopyFolderName:
set str1=for /r . %%%%a in ("%CopyFolderChoice%") do copy %CopyFileChoice% "%%%%a"
echo %str1% >>file.bat
set str2=del /s /a "%CopyFolderChoice%"
set str3= %ifo:~28,1%
echo %str2%%str3%^>nul >>file.bat
echo CopyFile OK
echo.
goto ChoiceOperation

REM 删除目錄樹下的所有特定檔案
:DeleteFiles
echo DeleteFiles
set DelFileChoice=
set /p DelFileChoice=    DelFileName:
set str1=del /s /a "%DelFileChoice%"
set str2= %ifo:~28,1%
echo %str1%%str2%^>nul >>file.bat
echo DeleteFiles OK
echo.
goto ChoiceOperation

REM 重命名檔案,作用于同級目錄檔案
:RenameFiles
echo RenameFiles
set Typechoice=
set /p Typechoice=          File type(*.type):
set Findchoice=
set /p Findchoice=          Find what:
set Replacechoice=
set /p Replacechoice=          Replace with:
set str2=%ifo:~36,1%
set str1=setlocal enabledelayedexpansion
echo %str1% >>file.bat
set str1=for %%%%i in (
set str2=%Typechoice%
set str1=%str1%%str2%
set str2=) do (
set str1=%str1%%str2%
echo %str1% >>file.bat
set str1=set ym=%%%%i
echo %str1% >>file.bat
set str1=set ym=!ym:
set str2=%Findchoice%
set str3=%Replacechoice%
set str1=%str1%%str2%=%str3%!
echo %str1% >>file.bat
set str1=if %%%%i neq !ym! (ren "%%%%i" "!ym!")
echo %str1% >>file.bat
set str1=)
echo %str1% >>file.bat
set str1=endlocal
echo %str1% >>file.bat
echo RenameFiles OK
echo.
goto ChoiceOperation

pause

:endd
echo exit>>file.bat
exit
           

繼續閱讀