Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 在前台执行批处理文件_Windows_Node.js_Batch File_Node Webkit - Fatal编程技术网

Windows 在前台执行批处理文件

Windows 在前台执行批处理文件,windows,node.js,batch-file,node-webkit,Windows,Node.js,Batch File,Node Webkit,有了nodejs应用程序(事实上是NodeWebKit),我如何在前台的任何文件夹中启动批处理文件 到目前为止,我已经成功运行了批处理文件,包括以下内容: require('child_process')。spawn(pathToBat,[],dirOfBat) 但是,这是在后台运行的。 编辑以进行澄清:在前景中,意味着打开一个单独的窗口以显示批处理文件生成的所有输出 我尝试了child\u process.exec以及将批处理文件同时传递给start和cmd的各种变体,但我似乎无法使其工作。有

有了nodejs应用程序(事实上是NodeWebKit),我如何在前台的任何文件夹中启动批处理文件

到目前为止,我已经成功运行了批处理文件,包括以下内容:

require('child_process')。spawn(pathToBat,[],dirOfBat)

但是,这是在后台运行的。
编辑以进行澄清:在前景中,意味着打开一个单独的窗口以显示批处理文件生成的所有输出


我尝试了
child\u process.exec
以及将批处理文件同时传递给
start
cmd
的各种变体,但我似乎无法使其工作。有什么提示吗?

据我所知,你不能。但是你可以用管道把蒸汽输送出去 child.stdout和child.stdin 到 process.stdout和process.stdin

编辑

在解释了你的评论之后,我认为你在寻找exec或execFile

var exec = require('child_process').exec;
exec('explorer'); exec('notepad'); exec('start cmd');

像这样的事?

据我所知,你不能。但是你可以用管道把蒸汽输送出去 child.stdout和child.stdin 到 process.stdout和process.stdin

编辑

在解释了你的评论之后,我认为你在寻找exec或execFile

var exec = require('child_process').exec;
exec('explorer'); exec('notepad'); exec('start cmd');


类似这样的事情?

在前台运行是什么意思?@AndreasHultgren:在前台,我的意思是屏幕上显示一个窗口,其中包含运行批处理文件的
cmd
进程的输出。我可以在任务管理器中看到流程,但窗口没有创建。这完全是另一回事。。。我将编辑我的应答器,将子进程的stdout管道传输到节点应用程序的stdout将是一项简单的任务(正如@AvnerSolomon所回答的),但我不知道是否可以在新窗口中运行命令。如果有一个终端命令在一个新窗口中运行该命令,您可以使用它,但afaik节点本身不能这样做。在前台运行是什么意思?@AndreasHultgren:在前台,我的意思是在屏幕上显示一个窗口,其中包含运行批处理文件的
cmd
进程的输出。我可以在任务管理器中看到流程,但窗口没有创建。这完全是另一回事。。。我将编辑我的应答器,将子进程的stdout管道传输到节点应用程序的stdout将是一项简单的任务(正如@AvnerSolomon所回答的),但我不知道是否可以在新窗口中运行命令。如果有一个终端命令在一个新窗口中运行该命令,您可以使用它,但afaik节点本身无法做到这一点。事实上,类似的,但是如果我
exec('cmd')
,我就没有窗口了。非常感谢!我的问题是,我尝试了类似于
exec('start',['cmd',args,for,cmd])
的方法,而这样做的目的是:
exec('start cmd args for cmd')
。exec与spawn不同,没有args。第一个参数是整个命令,第二个是env选项,第三个是callbackHi,也许我很愚蠢,但是当你用exec('start cmd')生成了一个新的cmd窗口时;如何在其上执行命令?例如,从您的描述中,我认为您可以执行如下操作:exec('start cmd dir');在这个新窗口中执行dir命令,但这不起作用。有什么想法吗?你不能这样做,因为exec运行一个进程,而dir只是一个内部命令,你必须运行cmd并在stdin进程中发送“dir”。从来没有尝试过这样做,但是如果我
exec('cmd')
,我就没有窗口了。非常感谢!我的问题是,我尝试了类似于
exec('start',['cmd',args,for,cmd])
的方法,而这样做的目的是:
exec('start cmd args for cmd')
。exec与spawn不同,没有args。第一个参数是整个命令,第二个是env选项,第三个是callbackHi,也许我很愚蠢,但是当你用exec('start cmd')生成了一个新的cmd窗口时;如何在其上执行命令?例如,从您的描述中,我认为您可以执行如下操作:exec('start cmd dir');在这个新窗口中执行dir命令,但这不起作用。有什么想法吗?你不能这样做,因为exec运行一个进程,而dir只是一个内部命令,你必须运行cmd并在stdin进程中发送“dir”。从未尝试过