使用VBScript通过xcopy复制文件时出现问题

时间:2010-03-19 06:12:16

标签: vbscript xcopy

我使用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,但它没有用。任何人都可以帮我找出正确的语法吗?任何帮助表示赞赏。

3 个答案:

答案 0 :(得分: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',目标将是'和',参数将是'Settings \'。这就是为什么你的路径必须用引号括起来,如果你传递xcopy“C:\ Documents and Settings”“C:\”/ e然后它知道源是'C:\ Documents and Settings'目的地是'C :\'和参数是'/ e'。

答案 1 :(得分:0)

g = "xcopy " & h & " D:\y\ /E"

答案 2 :(得分:0)

VBscript变量仅由其名称引用,因此没有像$或&这样的前缀是必须的。我想其他建议会起作用