我的脚本有问题:
@echo on
setlocal EnableDelayedExpansion
pushd C:\Users\Oskars.Abuhovs\Desktop\testJstoReplace
for /f "delims=" %%a in ('dir /b /a-d-h-s') do (
set newFile=C:\Users\Oskars.Abuhovs\Desktop\tempjs\%%a
if exist !newfile! del /f /q !newfile!
for /f "delims=" %%L in (%%a) do (
set newLine=%%L
echo !^newLine:dojo/i18n=ggggggggg^^!dddd! >> !newFile!
)
)
popd
pause
问题是连续的:
echo !^newLine:dojo/i18n=ggggggggg^^!dddd! >> !newFile!
哪里人品!没有逃脱,我读到了setlocal EnableDelayedExpansion
!应该使用 转义字符^^
,但它没有发生。我怎样才能逃脱这个角色?
编辑:
我想替换文件中的部分字符串。此特定字符串dojo/i18n
应替换为另一个包含 ! 的字符串。例如dojo/i18n!mycomputer
.
整个脚本一起从文件夹中读取文件,然后逐行搜索每个文件以查找此字符串:dojo/i18n
,找到后,字符串应替换为前面提到dojo/i18n!mycomputer
的包含 ! 的文本。我试图通过逃避来做到这一点!带有两个 ^^ 的字符,因为它应该在 时起作用setlocal EnableDelayedExpansion
,但是这种组合:^^!在这一行中不起作用,但是当我尝试简单echo ^^!
时它起作用了。
所以我问如何逃脱!那一行的字符?
提前致谢!