Batch file 如何使用&;执行后台的批处理文件;命令行中有符号AND,但传递参数?

Batch file 如何使用&;执行后台的批处理文件;命令行中有符号AND,但传递参数?,batch-file,cmd,command,Batch File,Cmd,Command,我有以下批处理文件: cd C:\myfolder\MyScripts "C:\Program Files\nodejs\node.exe" runTest.js & %1 %1是我从c#应用程序发送的参数 &是一个允许在后台执行进程的命令(对于我来说这是必需的) 我的问题是命令行停止在符号中,并且不将参数发送到我的文件。 如果我在末尾使用带符号的“”C:\Program Files\nodejs\node.exe”runTest.js%1&,则进程

我有以下批处理文件:

    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

但是当我使用语法传递参数值时,它失败了。
非常感谢你

您是否绝对确定
“C:\Program Files\nodejs\node.exe”runTest.js&500
有效?因为在cmd.exe/batch文件中,符号AND是一个特殊字符,用于连接两个命令,所以它应该执行
“C:\Program Files\nodejs\node.exe”runTest.js
,然后是无效的命令
500
。也许您应该使用插入符号(
^&
)或双引号将参数(
“&500”
)或参数(
”&“500”
)转义为与。是的,它可以工作。执行我的进程并传递参数。这个尾随符号指示shell在后台运行该命令,也就是说,它被分叉并作为作业在单独的子shell中异步运行。shell将立即返回0的返回状态为true,并按正常方式继续,要么在脚本中处理进一步的命令,要么在Linux终端中将光标焦点返回给用户。据我所知,&不是windows.cmd的一部分,或者可以在线找到。在unix shell中运行后台作业是标准的,但在Windows shell中则不是。这是用
start/min cmd/c mycommand完成的
-请参阅您的链接是针对
bash
,即基于Unix的Bourne SHell,而不是Windows
cmd.exe
,即用于标记[]的标记[]。您确定没有将
bash
batch
混淆吗?顺便说一句,如果您指的是Windows cmd.exe和Windows批处理文件,请查看[]标记的信息,并解释使用它的原因!1.打开命令提示窗口。2.键入
cd c:\myfolder\MyScripts
,然后按
[ENTER]
。3.键入
“C:\Program Files\nodejs\node.exe”runTest.js&500
,然后按
[ENTER]
。你会清楚地看到发生了什么。顺便说一句,这个链接准确地告诉了你我已经告诉过你发生了什么,它使用了和符号来分隔两个命令,
500
不是一个命令!。此外,正如我已经向您提到的,您还没有更正您的标签。