bat 文件中的 sed.exe 表达式

bat 文件中的 sed.exe 表达式

我正在使用 的 Windows 端口sed.exe

当我直接从命令行执行类似操作时:

sed.exe -i "s/WRITE;/WRITE; TRUNCATE TABLE `Team_matchdayResults`;/g" my_script.sql

一切都运行顺利,文件中的文本部分也发生了变化my_script.sql

现在我想在文件内执行完全相同的操作.bat。我知道我必须在那里转义双引号,所以我这样做了。

sed.exe -i ""s/WRITE;/WRITE; TRUNCATE TABLE `Team_matchdayResults`;/g"" my_file.sql

不幸的是,这以以下错误结束

sed.exe: -e expression #1, char 15: unterminated `s' command

我想我必须转义更多内容,但我似乎不知道具体是什么。我读到过应该;在批处理文件中进行转义,但只能在FOR循环中进行。然而,这并没有给我带来任何进一步的帮助。

我还需要逃避什么呢?

答案1

我下载了适用于 Windows 的 GNU Sed只是为了测试一下,我发现你不需要转义任何东西就可以在.bat文件中工作。引号"及其内容被正确解释。

test.txt内容:

Test0 WRITE;
Test1 WRITE
Test2 WRITE;

test.bat内容:

sed -i "s/WRITE;/WRITE; TRUNCATE TABLE `Team_matchdayResults`;/g" test.txt

test.txt运行后,新增内容为test.bat

Test0 WRITE; TRUNCATE TABLE `Team_matchdayResults`;
Test1 WRITE
Test2 WRITE; TRUNCATE TABLE `Team_matchdayResults`;

你试过吗赛格威? 它允许在 Windows 上运行和编写常见的 UNIX 命令。

相关内容