我正在使用CuteFTP自动化一个文件下载彻底的VBScript。在VBScript的末尾,我将调用一个批处理文件,该文件将使用7zip的CLI展开zip文件。
批处理文件和7zip可执行文件存储在Server1 (nt950id3)上。扩张发生在Server2 (nt950a1)上。由于公司的限制,这是不能改变的。由于VBS正在工作,所以我省略了它的代码。这是批处理命令-
"\\nt950id3\c$\apps\CFI\7zip\7za.exe" e -y "\\nt950a1\filexfr$\Spectrum\File.zip" -o"\\nt950a1\filexfr$\Spectrum"扩展是笨拙的,因为7zip将提取到批处理文件的CWD,而不是zip文件所在的目录,除非我指定了-o开关。
当我双击批处理文件或通过计划的任务运行它时,它只起作用。当VBScript调用批处理文件时,它会失败,说明不支持UNC路径--我不知道会有什么不同。PUSHD和POPD应该修复这个问题。
通过这篇关于CLI速成班的文章进行的进一步研究让我在每个目录上使用PUSHD,并将它们设置为变量-
SET UZEXE=PUSHD "\\nt950id3\c$\apps\CFI\7zip\7za.exe"
SET ZSRC=PUSHD "\\nt950a1\filexfr$\Spectrum\File.zip"
SET ZEDST=PUSHD "\\nt950a1\filexfr$\Spectrum"在代码的底部,我使用了三次'POPD‘(在每一行末尾也尝试过),尽管设置路径上有这个非常简单的帖子,但我无法使它工作。我也尝试过在没有PUSHD的情况下-
SET UZEXE="\\nt950id3\c$\apps\CFI\7zip\7za.exe"此操作也失败,说明不支持UNC路径。
能否请社区解释我的错误,并指出如何使用多个单独的PUSHD/POPD目录来完成运行命令的示例?
发布于 2014-07-08 16:14:27
在比尔的指导下,我只使用VBS --不调用批处理--来解决我的问题。我不知道这是如此容易的可能,并将努力做更好的研究向前推进。工作守则-在联合国大学道路上设有支架-如下:
Set wshShell = CreateObject("wscript.shell")
wshShell.Run"""\\server1\path\7z.exe"" e -y ""\\server1\path\srcfile.zip"" -o\\server2\path\unzipdest", 0, True首先,正在执行的代码声明它找不到文件。结果发现,这是文件路径中有空白的问题。在使用这个Google组主题学习正确放置引号之后,它现在在CuteFTP脚本中工作,没有任何错误。
https://stackoverflow.com/questions/24021761
复制相似问题