如何将批处理文件参数中的所有双引号替换为转义双引号?这是我当前的批处理文件,它在字符串中扩展了所有命令行参数:
@echo off
call bash --verbose -c "g++-linux-4.1 %*"
然后它使用该字符串调用 Cygwin 的 bash,执行 Linux 交叉编译器。不幸的是,我将这样的参数传递到我的批处理文件中:
"launch-linux-g++.bat" -ftemplate-depth-128 -O3 -finline-functions
-Wno-inline -Wall -DNDEBUG -c
-o "C:\Users\Me\Documents\Testing\SparseLib\bin\Win32\LinuxRelease\hello.o"
"c:\Users\Me\Documents\Testing\SparseLib\SparseLib\hello.cpp"
传入的第一个路径周围的第一个引号会提前结束传递给 GCC 的字符串,并将其余参数直接传递给 bash(这会失败)。
我想如果我可以将参数连接成一个字符串然后转义引号它应该可以正常工作,但我很难确定如何做到这一点。有谁知道吗?
最佳答案
批处理脚本中的转义字符是^
。但对于双引号字符串,请将引号加倍:
"string with an embedded "" character"
关于scripting - 在批处理脚本中转义双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/562038/