
[已解決]求助批處理如何復制文件名含某個特定字符的文件到該文件所在的文件夾最后由 盛世繁華 于 -2-16 15:45請各位老師指導下,如何復制文件名(不考慮擴展名)中含有特定字符的文件到該文件所在的文件夾內,也就是這個文件原來在哪還復制到哪,并且把復制得到的新文件的命名用另外一個指定的字符代替而其他字符包括后綴都不變。我弄一半弄不下去了,代碼放下面了。為了方便說明,下面以復制圖片舉例:現在文件夾下有:一個bat文件,一個食譜1文件夾(包含2張圖片:A1001,B1002),一個食譜2文件夾(包含2張圖片:A1003,B1004)那么運行bat,①設置復制的份數,這里設置為2份,②設置新文件用什么字符替換老文件名里的特定字符,新文件字符如果不止一個用逗號隔開。假設我們用E,F 替換含B的文件,運行時依次填入:set /p Copys=輸入份數> set /p Oldcharacter=輸入舊字符>set /p Newcharacter=輸入新字符> 那么依次輸入2,輸入B,輸入E,F,運行結束后文件夾下的文件變為:一個bat文件,一個食譜1文件夾(包含2張圖片:A1001,B1002,E1002,F1002),一個食譜2文件夾(包含2張圖片:A1003,B1004,E1004,F1004)也就是:———————————————————————|1.bat| |1.bat||食譜文件夾1 | |食譜文件夾1|| A1001.jpg | | A1001.jpg|| B1002.jpg | | B1002.jpg||| | E1002.jpg|||變為 | F1002.jpg||食譜文件夾2 | |食譜文件夾2|| A1003.jpg | | A1003.jpg|| B1004.jpg | | B1004.jpg||| | E1004.jpg||| | F1004.jpg|———————————————————————我的代碼會復制所有文件夾里含B的圖片然后到所有的文件夾,而且替換字符還沒寫。最后說明的是,想讓它能批處理所有文件而不僅限于圖片,謝謝老師:
nclick="copycode($('code0'));">復制代碼
- @echo off&cd /d %~dp0
- set root=%~dp0
- for /d %%i in (*) do (
- for %%a in (B) do (
- for /f delims= %%b in ('dir /a-d-h/b/s *%%~a* ^|findstr /vi .bat$') do (
- copy %%~b %%i
- )
- )
- )
- echo 完成!
- pause

