【发布时间】:2014-01-16 22:12:14
【问题描述】:
我目前正在将 nodejs 与 child_process 模块一起使用。我们正在尝试一些奇怪的批处理操作。
基本上,我们只想使用 xcopy 命令复制文件。
例如,我们这样做:
xcopy "C:/my/path/myfile.test" "C:/my/path/mynewfile.test*" => Does not work. Windows needs backslash
xcopy "C:\my\path\myfile.test" "C:/my/path/mynewfile.test*" => Does not work. We need to escape backslash
xcopy "C:\\my\\path\\myfile.test" "C:/my/path/mynewfile.test*" => Works...
所以我有一些问题。
为什么 xcopy 的 source 参数需要反斜杠,而 目标参数与斜杠一起使用吗?
我正在使用spawn function of the child process module。似乎这并没有逃脱任何东西。我试图查看 nodejs 的代码,但是……这并不容易! spawn 函数是否会转义命令?
-
如果我们确实需要自己转义命令,那么我们也想在 UNIX 上执行我们的命令。所以我认为转义方法不一样。而且我不想做一个
if(window) escapeshellargWindow(arg) else if(unix) escapeshellargLinux(arg)
还有其他人遇到过这类问题吗?
【问题讨论】:
-
始终在 Windows 命令提示符下使用单反斜杠。它不需要转义(除了 for 循环中的一些
wmic命令)。 -
@Endoro:感谢您的回答。但是,我没有在 Windows 命令提示符中执行这些命令。我用 nodejs 的 child_process 执行它们。这就是我遇到这些问题的原因。
标签: javascript node.js unix batch-file child-process