我正在使用Windows命令行环境编写批处理文件脚本,并希望将文件中某些文本(例如"FOO")的每次出现更改为另一个(例如"BAR").最简单的方法是什么?任何内置功能?
我在Virtual PC 2007中有一台虚拟机.
要从桌面启动它,我在批处理文件中有以下命令:
"c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc "MY-PC" -launch
Run Code Online (Sandbox Code Playgroud)
但是这会在主机上留下dos提示,直到虚拟机关闭,然后退出Virtual PC控制台.那很烦人.
所以我更改了命令以使用START命令,而不是:
start "c:\program files\Microsoft Virtual PC\Virtual PC.exe" -pc MY-PC -launch
Run Code Online (Sandbox Code Playgroud)
但它扼杀了传入Virtual PC的参数.
START /?表示参数确实进入该位置.有没有人用START来启动一个包含多个命令行参数的程序?
如何使用转义双引号替换批处理文件参数中的所有双引号?这是我当前的批处理文件,它扩展了字符串中的所有命令行参数:
@echo off
call bash --verbose -c "g++-linux-4.1 %*"
Run Code Online (Sandbox Code Playgroud)
然后它使用该字符串调用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"
Run Code Online (Sandbox Code Playgroud)
传入第一个路径的第一个引用是过早地结束传递给GCC的字符串,并将其余参数直接传递给bash(这非常失败.)
我想如果我可以将参数连接成一个单独的字符串然后转义它应该正常工作的引号,但我很难确定如何做到这一点.有人知道吗?
batch-file ×2
scripting ×2
windows ×2
command-line ×1
escaping ×1
parameters ×1
quotes ×1
text-files ×1