如何在命令行中使用 & 符号执行我后台的批处理文件,但传递参数?

How Can I execute a batch file i back ground using & ampersand in command line, but passing parameters?

我有以下批处理文件:

    cd C:\myfolder\MyScripts
    "C:\Program Files\nodejs\node.exe" runTest.js & %1

%1 是我从 c# 应用程序发送的参数。

& 是一个允许在后台执行进程的命令(这对我来说是强制性的)

我的问题是命令行在 & 符号处停止,并且没有将参数发送到我的文件。 如果我把 "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 

并且完全符合我的需要。