Windows批量搜索并復(fù)制/剪切文件的批處理程序?qū)嵗?/h1>
更新時(shí)間:2020年02月13日 15:13:52 投稿:WDC
這篇文章主要介紹了Windows批量搜索并復(fù)制/剪切文件的批處理程序?qū)嵗?需要的朋友可以參考下
搜索包含關(guān)鍵字的文件名是最常用的功能之一,比如按人名搜索mp3、按內(nèi)容搜索圖紙等等,當(dāng)需要搜索成百上千個(gè)關(guān)鍵詞時(shí),會(huì)消耗大量的人力和時(shí)間,這時(shí)就需要批量搜索功能。本文介紹一個(gè)我自己編寫的、用于批量搜索文件的批處理程序。
搜索包含關(guān)鍵字的文件名是最常用的功能之一,比如按人名搜索mp3、按內(nèi)容搜索圖紙等等,當(dāng)需要搜索成百上千個(gè)關(guān)鍵詞時(shí),會(huì)消耗大量的人力和時(shí)間,這時(shí)就需要批量搜索功能。
傳統(tǒng)方法
Windows XP自帶了批量搜索的功能,在按(Win+F)彈出的搜索框中,填入若干關(guān)鍵詞,用逗號(hào)隔開,這樣搜出的結(jié)果是包含至少一個(gè)關(guān)鍵詞的文件。但是這種搜索方法有關(guān)鍵字?jǐn)?shù)量的限制,而且要把一堆關(guān)鍵詞用逗號(hào)隔開也是需要點(diǎn)工夫的,當(dāng)然你可以用Excel處理,但總歸比較麻煩。下面介紹一個(gè)我自己編寫的批處理程序。
任務(wù)描述
所謂批量搜索是在一批文件名里尋找多個(gè)關(guān)鍵詞,比如
關(guān)鍵詞列表:AA,BB,CC
目標(biāo)文件名:AA1,BB2,DD3,BBC1,EE2,Abb
批量搜索得到的結(jié)果有:AA1,BB2,BBC1,Abb
因?yàn)閃indows系統(tǒng)對文件名的大小寫只記錄,不區(qū)分,所以Abb也能被搜出來。
解決方法
利用批處理程序中強(qiáng)大的for命令,可以很好的完成批量的搜索。結(jié)合其他批處理命令,還能將搜出來的文件復(fù)制或者剪切到目的路徑下面。
首先把關(guān)鍵字保存在名叫“l(fā)ist.txt”的文本文件里,每個(gè)關(guān)鍵字占一行。注意不能有空格、空行、空回車。例如:
AA
BB
CC
然后把下面的代碼保存成以 *.bat 為擴(kuò)展名的批處理文件。代碼如下:
::Batch search & copy/move, Mar 21,2009
::..
@echo off
color 3E
echo 本程序復(fù)制/剪切當(dāng)前目錄下含有特定關(guān)鍵字的特定類型文件
echo 注意:覆蓋不提示,請小心操作
echo 注意:關(guān)鍵字列表不要有空格、空行、空回車
echo.
if not exist list.txt (echo.
echo 請先將關(guān)鍵字列表保存為list.txt...
pause > NUL
exit
)
echo.
echo 選擇要進(jìn)行的操作:
set /p opt=復(fù)制(c) or 剪切(x):
if %opt% NEQ c if %opt% NEQ x (
echo 沒有選項(xiàng),byebye!
pause >NUL
exit
)
set /p ext=指定文件擴(kuò)展名(不含".",比如pdf,不指定請輸入*):
set /p url=目標(biāo)文件夾路徑(不可在當(dāng)前目錄內(nèi)):
if not exist %url% md %url%
if %opt%==c set task=復(fù)制
if %opt%==x set task=剪切
echo 按任意鍵開始%task%....
pause > NUL
set count=0
for /f "tokens=*" %%i in (list.txt) do (
for /r %%j in (*%%i*.%ext%) do (
echo 正在%task% %%j 到 %url%
if %opt%==c (copy "%%j" %url% >NUL)
if %opt%==x (move "%%j" %url% >NUL)
set /a count+=1
)
)
echo.
echo 任務(wù)完成!共%task%了%count%個(gè)文件
echo.
echo by www.lfhacks.com
echo ..
pause >NUL
exit
把批處理文件和list.txt都放在要搜索的文件目錄下,運(yùn)行批處理文件,按提示操作即可,注意大小寫敏感。由于for命令先天的限制,有兩點(diǎn)需要注意:
- 被搜索文件不能放在根目錄下,需要放在子目錄內(nèi)
- 復(fù)制或者剪切的目的地最好在另外一個(gè)驅(qū)動(dòng)器內(nèi),不然可能會(huì)造成死循環(huán)。
對上述代碼稍作修改,可以得到其他定制的功能,比如,下面的代碼就是建立以關(guān)鍵字命名的獨(dú)立目錄,作為復(fù)制/剪切的目的地。這個(gè)代碼可以用來將文件按某個(gè)字段分配到多個(gè)文件夾里:
::Batch search & copy/move, Mar 21,2009
::..
@echo off
color 3E
echo 本程序復(fù)制/剪切當(dāng)前目錄下含有特定關(guān)鍵字的特定類型文件
echo 注意:覆蓋不提示,請小心操作
echo 注意:關(guān)鍵字列表不要有空格、空行、空回車
echo.
if not exist list.txt (echo.
echo 請先將關(guān)鍵字列表保存為list.txt...
pause > NUL
exit
)
echo.
echo 選擇要進(jìn)行的操作:
set /p opt=復(fù)制(c) or 剪切(x):
if %opt% NEQ c if %opt% NEQ x (
echo 沒有選項(xiàng),byebye!
pause >NUL
exit
)
set /p ext=指定文件擴(kuò)展名(不含".",比如pdf,不指定請輸入*):
set /p url=目標(biāo)文件夾路徑(不可在當(dāng)前目錄內(nèi),末尾不要帶斜杠\):
if not exist %url% md %url%
if %opt%==c set task=復(fù)制
if %opt%==x set task=剪切
echo 按任意鍵開始%task%....
pause > NUL
set count=0
for /f "tokens=*" %%i in (list.txt) do (
md %url%\%%i
for /r %%j in (*%%i*.%ext%) do (
echo 正在%task% %%j 到 %url%\%%i
if %opt%==c (copy /Y "%%j" "%url%\%%i" >NUL)
if %opt%==x (move /Y "%%j" "%url%\%%i" >NUL)
set /a count+=1
)
)
echo.
echo 任務(wù)完成!共%task%了%count%個(gè)文件
echo.
echo by www.lfhacks.com
echo ..
pause >NUL
exit
在批量搜索并轉(zhuǎn)移文件后,往往需要和原有的關(guān)鍵字比對,知道搜索到了多少文件。這就需要一個(gè)工具,能夠批量檢測一批關(guān)鍵字是否存在于一堆文件里。請參考另一篇文章: 批量檢測文件(夾)是否存在的批處理程序
您可能感興趣的文章:- windows批量檢測文件(夾)是否存在的批處理程序
- windows搜索空文件夾的批處理程序代碼實(shí)例
- Windows下使用批處理文件.bat刪除舊文件
- Windows 2008 r2任務(wù)計(jì)劃程序執(zhí)行批處理失敗問題解決方法
- Windows命令行bat批處理延遲sleep方法(批處理延時(shí))
- Windows下bat批處理腳本使用telnet批量檢測遠(yuǎn)程端口小記
- PHP啟動(dòng)windows應(yīng)用程序、執(zhí)行bat批處理、執(zhí)行cmd命令的方法(exec、system函數(shù)詳解)
- Windows運(yùn)行bat批處理文件時(shí)隱藏cmd命令提示符窗口的方法
- windows批處理命令教程
- Windows下用命令行修改IP地址的方法詳解(附批處理文件)
相關(guān)文章
-
很詳細(xì)的Ghost所有運(yùn)行錯(cuò)誤代碼完全大揭秘
很詳細(xì)的Ghost所有運(yùn)行錯(cuò)誤代碼完全大揭秘... 2007-02-02
-
批處理寫的 oracle 數(shù)據(jù)庫備份還原工具
由于平時(shí)要進(jìn)行數(shù)據(jù)庫的備份和還原操作,為了提高效率和節(jié)省時(shí)間就有了下面的批處理程序. 2009-07-07
-
實(shí)現(xiàn)WIN2003 IIS最小權(quán)限分配的批處理
實(shí)現(xiàn)WIN2003 IIS最小權(quán)限分配的批處理... 2007-08-08
-
批處理轉(zhuǎn)換磁盤convert的命令實(shí)現(xiàn)
本文主要介紹了批處理轉(zhuǎn)換磁盤convert的命令實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧 2024-06-06
-
利用xcopy命令實(shí)現(xiàn)本地文件復(fù)制到遠(yuǎn)程服務(wù)器的方法
把本地文件復(fù)制到遠(yuǎn)程服務(wù)器:用Xcopy命令可以做到,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈,希望對你學(xué)習(xí)批處理有所幫助 2013-05-05
最新評(píng)論
搜索包含關(guān)鍵字的文件名是最常用的功能之一,比如按人名搜索mp3、按內(nèi)容搜索圖紙等等,當(dāng)需要搜索成百上千個(gè)關(guān)鍵詞時(shí),會(huì)消耗大量的人力和時(shí)間,這時(shí)就需要批量搜索功能。本文介紹一個(gè)我自己編寫的、用于批量搜索文件的批處理程序。
搜索包含關(guān)鍵字的文件名是最常用的功能之一,比如按人名搜索mp3、按內(nèi)容搜索圖紙等等,當(dāng)需要搜索成百上千個(gè)關(guān)鍵詞時(shí),會(huì)消耗大量的人力和時(shí)間,這時(shí)就需要批量搜索功能。
傳統(tǒng)方法
Windows XP自帶了批量搜索的功能,在按(Win+F)彈出的搜索框中,填入若干關(guān)鍵詞,用逗號(hào)隔開,這樣搜出的結(jié)果是包含至少一個(gè)關(guān)鍵詞的文件。但是這種搜索方法有關(guān)鍵字?jǐn)?shù)量的限制,而且要把一堆關(guān)鍵詞用逗號(hào)隔開也是需要點(diǎn)工夫的,當(dāng)然你可以用Excel處理,但總歸比較麻煩。下面介紹一個(gè)我自己編寫的批處理程序。
任務(wù)描述
所謂批量搜索是在一批文件名里尋找多個(gè)關(guān)鍵詞,比如
關(guān)鍵詞列表:AA,BB,CC
目標(biāo)文件名:AA1,BB2,DD3,BBC1,EE2,Abb
批量搜索得到的結(jié)果有:AA1,BB2,BBC1,Abb
因?yàn)閃indows系統(tǒng)對文件名的大小寫只記錄,不區(qū)分,所以Abb也能被搜出來。
解決方法
利用批處理程序中強(qiáng)大的for命令,可以很好的完成批量的搜索。結(jié)合其他批處理命令,還能將搜出來的文件復(fù)制或者剪切到目的路徑下面。
首先把關(guān)鍵字保存在名叫“l(fā)ist.txt”的文本文件里,每個(gè)關(guān)鍵字占一行。注意不能有空格、空行、空回車。例如:
AA
BB
CC
然后把下面的代碼保存成以 *.bat 為擴(kuò)展名的批處理文件。代碼如下:
::Batch search & copy/move, Mar 21,2009 ::.. @echo off color 3E echo 本程序復(fù)制/剪切當(dāng)前目錄下含有特定關(guān)鍵字的特定類型文件 echo 注意:覆蓋不提示,請小心操作 echo 注意:關(guān)鍵字列表不要有空格、空行、空回車 echo. if not exist list.txt (echo. echo 請先將關(guān)鍵字列表保存為list.txt... pause > NUL exit ) echo. echo 選擇要進(jìn)行的操作: set /p opt=復(fù)制(c) or 剪切(x): if %opt% NEQ c if %opt% NEQ x ( echo 沒有選項(xiàng),byebye! pause >NUL exit ) set /p ext=指定文件擴(kuò)展名(不含".",比如pdf,不指定請輸入*): set /p url=目標(biāo)文件夾路徑(不可在當(dāng)前目錄內(nèi)): if not exist %url% md %url% if %opt%==c set task=復(fù)制 if %opt%==x set task=剪切 echo 按任意鍵開始%task%.... pause > NUL set count=0 for /f "tokens=*" %%i in (list.txt) do ( for /r %%j in (*%%i*.%ext%) do ( echo 正在%task% %%j 到 %url% if %opt%==c (copy "%%j" %url% >NUL) if %opt%==x (move "%%j" %url% >NUL) set /a count+=1 ) ) echo. echo 任務(wù)完成!共%task%了%count%個(gè)文件 echo. echo by www.lfhacks.com echo .. pause >NUL exit
把批處理文件和list.txt都放在要搜索的文件目錄下,運(yùn)行批處理文件,按提示操作即可,注意大小寫敏感。由于for命令先天的限制,有兩點(diǎn)需要注意:
- 被搜索文件不能放在根目錄下,需要放在子目錄內(nèi)
- 復(fù)制或者剪切的目的地最好在另外一個(gè)驅(qū)動(dòng)器內(nèi),不然可能會(huì)造成死循環(huán)。
對上述代碼稍作修改,可以得到其他定制的功能,比如,下面的代碼就是建立以關(guān)鍵字命名的獨(dú)立目錄,作為復(fù)制/剪切的目的地。這個(gè)代碼可以用來將文件按某個(gè)字段分配到多個(gè)文件夾里:
::Batch search & copy/move, Mar 21,2009 ::.. @echo off color 3E echo 本程序復(fù)制/剪切當(dāng)前目錄下含有特定關(guān)鍵字的特定類型文件 echo 注意:覆蓋不提示,請小心操作 echo 注意:關(guān)鍵字列表不要有空格、空行、空回車 echo. if not exist list.txt (echo. echo 請先將關(guān)鍵字列表保存為list.txt... pause > NUL exit ) echo. echo 選擇要進(jìn)行的操作: set /p opt=復(fù)制(c) or 剪切(x): if %opt% NEQ c if %opt% NEQ x ( echo 沒有選項(xiàng),byebye! pause >NUL exit ) set /p ext=指定文件擴(kuò)展名(不含".",比如pdf,不指定請輸入*): set /p url=目標(biāo)文件夾路徑(不可在當(dāng)前目錄內(nèi),末尾不要帶斜杠\): if not exist %url% md %url% if %opt%==c set task=復(fù)制 if %opt%==x set task=剪切 echo 按任意鍵開始%task%.... pause > NUL set count=0 for /f "tokens=*" %%i in (list.txt) do ( md %url%\%%i for /r %%j in (*%%i*.%ext%) do ( echo 正在%task% %%j 到 %url%\%%i if %opt%==c (copy /Y "%%j" "%url%\%%i" >NUL) if %opt%==x (move /Y "%%j" "%url%\%%i" >NUL) set /a count+=1 ) ) echo. echo 任務(wù)完成!共%task%了%count%個(gè)文件 echo. echo by www.lfhacks.com echo .. pause >NUL exit
在批量搜索并轉(zhuǎn)移文件后,往往需要和原有的關(guān)鍵字比對,知道搜索到了多少文件。這就需要一個(gè)工具,能夠批量檢測一批關(guān)鍵字是否存在于一堆文件里。請參考另一篇文章: 批量檢測文件(夾)是否存在的批處理程序
- windows批量檢測文件(夾)是否存在的批處理程序
- windows搜索空文件夾的批處理程序代碼實(shí)例
- Windows下使用批處理文件.bat刪除舊文件
- Windows 2008 r2任務(wù)計(jì)劃程序執(zhí)行批處理失敗問題解決方法
- Windows命令行bat批處理延遲sleep方法(批處理延時(shí))
- Windows下bat批處理腳本使用telnet批量檢測遠(yuǎn)程端口小記
- PHP啟動(dòng)windows應(yīng)用程序、執(zhí)行bat批處理、執(zhí)行cmd命令的方法(exec、system函數(shù)詳解)
- Windows運(yùn)行bat批處理文件時(shí)隱藏cmd命令提示符窗口的方法
- windows批處理命令教程
- Windows下用命令行修改IP地址的方法詳解(附批處理文件)
相關(guān)文章
很詳細(xì)的Ghost所有運(yùn)行錯(cuò)誤代碼完全大揭秘
很詳細(xì)的Ghost所有運(yùn)行錯(cuò)誤代碼完全大揭秘...2007-02-02
批處理寫的 oracle 數(shù)據(jù)庫備份還原工具
由于平時(shí)要進(jìn)行數(shù)據(jù)庫的備份和還原操作,為了提高效率和節(jié)省時(shí)間就有了下面的批處理程序.2009-07-07
實(shí)現(xiàn)WIN2003 IIS最小權(quán)限分配的批處理
實(shí)現(xiàn)WIN2003 IIS最小權(quán)限分配的批處理...2007-08-08
批處理轉(zhuǎn)換磁盤convert的命令實(shí)現(xiàn)
本文主要介紹了批處理轉(zhuǎn)換磁盤convert的命令實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06
利用xcopy命令實(shí)現(xiàn)本地文件復(fù)制到遠(yuǎn)程服務(wù)器的方法
把本地文件復(fù)制到遠(yuǎn)程服務(wù)器:用Xcopy命令可以做到,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈,希望對你學(xué)習(xí)批處理有所幫助2013-05-05

