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 %*