Node.js“exec”命令不能与rundll32一起使用

我有一个简单的节点服务器设置自动图像打印的目的。

代码:

var directory = process.env['USERPROFILE'] + '\\Downloads\\'; var command = 'rundll32 C:\\Windows\\System32\\shimgvw.dll ImageView_PrintTo /pt "' + directory + imageName + '" "EPSON TM-C3500"'; exec(command, function(error, stdout, stderr){}); 

命令string:

 rundll32 C:\Windows\System32\shimgvw.dll ImageView_PrintTo /pt "C:\Users\gperry\Downloads\badge_0_12968249.jpg" "EPSON TM-C3500" 

如果我在cmd.exe过程中运行该命令,它的工作原理是完美的,但是exec命令似乎什么都不做……运行其他命令,像“mspaint / pt”这样的exec工作得很好,所以我不知道正在这里。

非常感谢帮助! 谢谢。

我find了解决办法,对于任何关心的人。

我改变了命令来执行一个叫做print命令的批处理脚本的调用。

 var directory = process.env['USERPROFILE'] + '\\Downloads\\'; var command = 'start cmd.exe /C ' + __dirname + '\\print.bat ' + directory + imageName + ' "EPSON TM-C3500"'; exec(command, {}, function(error, stdout, stderr){}); 

但是,然后批处理脚本不工作…为什么? 我不知道。 我知道在批处理脚本中添加一个TIMEOUT 0修复了它。

 TIMEOUT 0 rundll32 C:\\Windows\\System32\\shimgvw.dll ImageView_PrintTo /pt %*