batch-file - 如何在命令行中使用 & & & & 符号在后台执行批处理文件,但传递参数?
问题描述
我有以下批处理文件:
cd C:\myfolder\MyScripts
"C:\Program Files\nodejs\node.exe" runTest.js & %1
%1 是我从 ac# 应用程序发送的参数。
& 是一个允许在后台执行进程的命令(这对我来说是强制性的)
我的问题是命令行在与号中停止,并且没有将参数发送到我的文件。如果我将 "C:\Program Files\nodejs\node.exe" runTest.js %1 & 与与符号放在最后,则该进程不会在后台运行并停止。
有人能帮我吗?
我需要让进程在后台运行并发送参数。
注意:如果我在批处理文件中硬编码一个值它工作正常,例如:
"C:\Program Files\nodejs\node.exe" runTest.js & 500
但是当我使用语法传递参数值时,它会失败。太感谢了!
解决方案
对于所有和我有同样问题的人,这就是我解决它的方法:
我将cmd更改为powershell。
所以 C# 代码是这样完成的:
process.StartInfo.FileName = @"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe";
process.StartInfo.Arguments = $"-File \"{ScriptNameOne}\" \"{param1}\" \"{param2}\" \"{param3}\"";
process.StartInfo.UseShellExecute = true;
process.Start();
我在powershell中做了这样的脚本:
param(
[string] $param1,
[string] $param2,
[string] $param3
)
Set-Location "C:\My folder\My other folder"
& "C:\Program Files\nodejs\node.exe" "index.js" $param1 $param2 $param3
并且可以根据我的需要完美运行。
推荐阅读
- element - 无容器自定义元素上的 Aurelia 自定义属性,未获取元素
- sql - 获取具有条件的关联记录数
- pandas - set_index 和 groupby 如何协同工作?
- docker - osixia/openldap SSL/TLS 问题
- python - 使用 OpenCV 和 Python 将图像的分割部分替换为其他图像
- xamarin.forms - OneSignal 通知扩展,错误找不到任何可用的配置文件
- swift - 在不使用 segue 的情况下向后传递数据?
- java - 如何在不轮询的情况下从 Java Web 应用程序获取响应?
- unix - unix 中的 sed 命令不适用于大于 3GB 的文件
- angularjs - 如何在 AgularJS 中进行单选按钮验证