我想轉義DOS文件名,所以我可以使用它與sed。我有一個DOS批處理文件是這樣的:DOS文件名轉義使用* nix命令
set FILENAME=%~f1
sed 's/Some Pattern/%FILENAME%/' inputfile
(注:%~f1
- 擴展%1
到一個完全合格的路徑名 - C:\utils\MyFile.txt
)
我發現,在%FILENAME%
反斜線只是逃避的下一個字母。
我該如何將它們加倍以便逃脫?
(我已經安裝了cygwin可以隨意使用任何其他* nix命令)
解決方案
結合傑里米和亞歷山德魯·內德爾庫的建議,並使用|在sed命令分隔符我有
set FILENAME=%~f1
cygpath "s|Some Pattern|%FILENAME%|" >sedcmd.tmp
sed -f sedcmd.tmp inputfile
del /q sedcmd.tmp