我有以下批處理文件來查找和刪除文本文件中的字符串。該文本文件將在以下格式來:在批處理文件中查找/替換文本時如何處理&符號?
079754,Billing & Business Adv..,E:\MyDirectory\079754_35931_Billing & Business Adv...pdf,Combined PDF
我只是想去掉「E:\ mydirectory中\」從該文件,然後將文件移動到子目錄。我的批處理文件,按預期工作,除了那裏是在文件中的符號(如上面的一個)的情況下..
而是包含我的結果文件:
079754,Billing & Business Adv..,Billing & Business Adv...pdf,Combined PDF
相反,它包含,
079754,Billing
我在編寫批處理文件方面有點新,而且我知道&符以某種方式影響標記化。任何幫助將不勝感激!
批處理文件:
@echo off
cd C:\Temp\broker
for %%f in (*.dat) do (
if exist newfile.txt del newfile.txt
FOR /F "tokens=* delims=" %%a in (%%f) do @call :Change "%%a"
del %%f
rename newfile.txt %%f
move %%f "import\%%f"
)
exit /b
pause
:Change
set Text=%~1
set Text=%Text:E:\MyDirectory\=%
FOR /F "tokens=3 delims=," %%d in ("%Text%") do @set File=%%d
(echo %Text%)>> newfile.txt
move "%File%" "import\%File%"
exit /b
使用'^'來轉義特殊字符(如&符號),即'^&'。 – 0xC0000022L 2011-04-21 13:36:03
我無法控制輸入。 – ntsue 2011-04-21 13:39:15
是的。例如在你的'Change'子裏面。使用字符串替換。雖然我不確定這會在這裏有所作爲。 – 0xC0000022L 2011-04-21 13:46:48