Batch file 将参数(带空格)传递给批处理文件
无法在单个参数中接收完整参数 代码Batch file 将参数(带空格)传递给批处理文件,batch-file,command-line,cmd,Batch File,Command Line,Cmd,无法在单个参数中接收完整参数 代码 string startupPath = System.IO.Directory.GetCurrentDirectory(); string bat = startupPath + @"\util.bat"; var psi = new ProcessStartInfo(); psi.FileName = @bat; psi.Verb = "runas"; psi.Arguments = "C:/Program Files (x86)/Wind
string startupPath = System.IO.Directory.GetCurrentDirectory();
string bat = startupPath + @"\util.bat";
var psi = new ProcessStartInfo();
psi.FileName = @bat;
psi.Verb = "runas";
psi.Arguments = "C:/Program Files (x86)/Windows Kits/8.1/bin/x64" +"param2";
psi.UseShellExecute = true;
Process.Start(psi);
批处理文件:
@ECHO OFF
ECHO.
echo %~1 //this prints "C:/Program Files"
echo %1% //this prints "C:/Program Files"
echo %* //this prints C:/Program Files (x86)/Windows Kits/8.1/bin/x64 param2
cd %1%
echo "done"
ECHO.
PAUSE
CLS
EXIT
我想在两个不同的变量(如%1%和%2%)中接收两个参数。
我可以用逗号分隔它们,同时在批处理文件中发送和获取它们。但是,我想让这一切成功 请尝试
psi.Arguments=“\”C:/ProgramFiles(x86)/Windows Kits/8.1/bin/x64\“param2”代码>…不是解决方案,但是:%1%
是错误的,它是%1
@可能是错的!但是试试看。它打印相同的。它只在忽略第二个百分号的情况下工作。在for循环中不起作用,例如:for%%a in(%1%)do echo%%a
psi.Arguments=“\”C:\\Program Files(x86)\\Windows Kits\\8.1\\bin\\x64\“\”param2\”
Trypsi.Arguments=“\”C:/Program Files(x86)/Windows Kits/8.1/bin/x64\”param2”代码>…不是解决方案,但是:%1%
是错误的,它是%1
@可能是错的!但是试试看。它打印相同的。它只在忽略第二个百分号的情况下工作。在for循环中不起作用,例如:for%%a in(%1%)do echo%%a
psi.Arguments=“\”C:\\Program Files(x86)\\Windows Kits\\8.1\\bin\\x64\“\”param2\”