在批处理脚本中转义双引号如何使用转义双引号替换批处理文件参数中的所有双引号?这是我当前的批处理文件,它扩展了字符串中的所有命令行参数:@echo offcall 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(这非常失败。)我想如果我可以将参数连接成一个单独的字符串然后转义它应该正常工作的引号,但我很难确定如何做到这一点。有人知道吗?
3 回答
斯蒂芬大帝
TA贡献1827条经验 获得超8个赞
批处理中字符串替换的语法是:
set v_myvar=replace me
set v_myvar=%v_myvar:ace=icate%
这产生了“复制我”。我的脚本现在看起来像这样:
@echo off
set v_params=%*
set v_params=%v_params:"=\"%
call bash -c "g++-linux-4.1 %v_params%"
它取代的所有实例"有\",正确转义为庆典。
添加回答
举报
0/150
提交
取消