我目前正在将 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 的源参数需要反斜杠,而目标参数使用斜杠?
我正在使用子进程模块的 spawn 功能。似乎这并没有逃脱任何东西。我试图查看 nodejs 的代码,但是……这并不容易!spawn 函数是否会转义命令?
如果我们确实需要自己转义命令,那么我们还想在 UNIX 上执行我们的命令。所以我认为转义方法不一样。而且我不想做一个
if(window) escapeshellargWindow(arg) else if(unix) escapeshellargLinux(arg)
有没有其他人遇到过这类问题?