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,而不是Windowscmd.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
不是一个命令!。此外,正如我已经向您提到的,您还没有更正您的标签。