
【已解決】批處理根據(jù)文本中的文件名及對應(yīng)的后綴字符串對文件重命名折騰了許久,還是沒能成功,在此求助大神,已在論壇搜索了同類帖子,http://www.bathome.net/thread-15815-1-1.html,很雷同,也是通過txt中提取空格或者直接由xls文件copy過來的分隔符前面的內(nèi)容來判斷需要改名的文件名中存在與否,存在則進(jìn)行組合修改重命名該文件,否則則不修改。唯一區(qū)別就是重命名的名字是:【前者和后者的組合】,如: Names.txt文檔信息:C01--JX1412-1.0001_001.jpg 1000362裴宏業(yè)C01--JX1412-1.0001_002.jpg 1000758趙佳偉C01--JX1412-1.0001_003.jpg 1000761劉晨C01--JX1412-1.0001_004-1.jpg 1000901毛茅弋.........重命名后為:(目的1)C01--JX1412-1.0001_001_1000362裴宏業(yè).jpg C01--JX1412-1.0001_002_1000758趙佳偉.jpg C01--JX1412-1.0001_003_1000761劉晨.jpg C01--JX1412-1.0001_004-1_1000901毛茅弋.jpg 這里相當(dāng)于在原文件名后面添加或者:(目的2)C01--JX1412-1.0001_1000362裴宏業(yè).jpg C01--JX1412-1.0001_1000758趙佳偉.jpg C01--JX1412-1.0001_1000761劉晨.jpg C01--JX1412-1.0001_1000901毛茅弋.jpg這里相當(dāng)于把原文件名_下劃線后的部分替換為后面的部分 原貼里的語句:
nclick="copycode($('code0'));">復(fù)制代碼
- @echo off
- for /f tokens=1* %%i in (a.txt) do ren %%i %%j%%~xi
- pause
使用后發(fā)現(xiàn),不能保留原文件名,自己修改后,又把原文件名后綴一起帶入到了新文件名中,如:C01--JX1412-1.0001_001.jpg_1000362裴宏業(yè).jpgC01--JX1412-1.0001_002.jpg_1000758趙佳偉.jpgC01--JX1412-1.0001_003.jpg_1000761劉晨.jpgC01--JX1412-1.0001_004-1.jpg_1000901毛茅弋.jpg從而達(dá)不到前面我的要求。請大神抽空幫我(新手)修改一下。當(dāng)前文件及子文件的文件一并處理。謝謝!(盡管也可以利用原貼通過在xls文件多次修改來達(dá)到目的,但還是希望批處理能直接解決來得快)nclick="copycode($('code1'));">復(fù)制代碼
- @echo off
- for /r d:abc %%a in (*.pdf) do (
- for /f tokens=1,2 delims= %%b in (a.txt) do (
- if %%~nxa==%%b ren %%a %%c.pdf
- )
- )

