1

我正在使用 VBScript 使用 xcopy 复制文件。问题是文件夹路径必须由用户输入。假设我把那个路径放在一个变量中,比如说h,我如何在 xcopy 命令中使用这个变量?

这是我尝试过的代码:

Dim WshShell, oExec, g, h
h = "D:\newfolder"

g = "xcopy $h D:\y\ /E"
Set WshShell = CreateObject("WScript.Shell")

Set oExec = WshShell.Exec(g)

我也尝试过&h,但没有奏效。谁能帮我找出正确的语法?任何帮助表示赞赏。

4

3 回答 3

2

问题可能是您没有正确使用引号。试试这个

Dim WshShell, oExec,g,h 
h= Chr(34) & "D:\newfolder" & Chr(34)
g="xcopy " & h & " " & Chr(34) & "D:\y\" & Chr(34) & " /E"
Set WshShell = CreateObject("WScript.Shell")

Set oExec = WshShell.Exec(g)

如果任一路径中有空格,则路径必须包含在引号中,Chr(34) 是引号字符,因此通过将它们插入路径的开头和结尾,它会将路径包含在引号中。

假设源路径是 C:\Documents and Settings。如果你将它传递给 xcopy,它会认为源是“C:\Documents”,目标是“and”,参数是“Settings\”。这就是为什么你的路径必须用引号引起来,如果你通过 xcopy "C:\Documents and Settings" "C:\" /e 那么它知道源是 'C:\Documents and Settings' 目的地是 'C :\' 并且参数是 '/e'。

于 2010-03-19T14:58:59.680 回答
0
g = "xcopy " & h & " D:\y\ /E"
于 2010-03-19T11:34:15.477 回答
0

VBscript 变量仅通过它们的名称来引用,因此不需要像 $ 或 & 这样的前缀。我想其他建议会起作用

于 2010-03-22T01:33:50.653 回答