如何在Windows批處理文件中替換子字符串誰能告訴我使用批處理文件在Windows ...如何從文件中讀取并替換字符串= bath從包含文件= bath Abath Bbath XYZbathABC用繩子hello使輸出像hello Ahello Bhello XYZhelloABC
3 回答

翻翻過去那場雪
TA貢獻2065條經驗 獲得超14個贊
SET string=bath Abath Bbath XYZbathABC
SET modified=%string:bath=hello%
ECHO %string%
ECHO %modified%
編輯
一開始沒有看到你想要在替換之前從文件中讀取字符串。
好吧,對于批處理文件,您沒有太多處理文件的工具。在這種特殊情況下,您必須讀取一行,執行替換,然后輸出修改后的行,然后......那么呢?如果你需要在所有文件中替換'bath'的所有發生,那么你將不得不使用一個循環:
@ECHO OFF
SETLOCAL DISABLEDELAYEDEXPANSION
FOR /F %%L IN (file.txt) DO (
SET "line=%%L"
SETLOCAL ENABLEDELAYEDEXPANSION
ECHO !line:bath=hello!
ENDLOCAL
)
ENDLOCAL
您可以向文件添加重定向:
ECHO !line:bath=hello!>>file2.txt
或者,您可以將重定向應用于批處理文件。它必須是不同的文件。
編輯2
添加了適當的延遲擴展切換,以便正確處理具有批處理腳本語法特殊含義的某些字符,例如!,^et al。
- 3 回答
- 0 關注
- 2282 瀏覽
添加回答
舉報
0/150
提交
取消