2010-03-19 53 views
1

我正在使用VBScript使用xcopy複製文件。問題是文件夾路徑必須由用戶輸入。假設我把這個路徑放在一個變量中,比如h,我該如何在xcopy命令中使用這個變量?使用VBScript通過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但沒有奏效。任何人都可以幫我解決正確的語法嗎?任何幫助表示讚賞。

回答

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'。

+0

順便說一句,要插入引號到一個字符串中,你可以使用雙引號('「」')而不是連接'Chr(34)'。就我個人而言,我發現後者太冗長了。 – Helen 2010-03-19 20:47:22

+0

非常感謝。它的工作現在。 – sushant 2010-03-22 05:39:33

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

它不起作用 – sushant 2010-03-19 11:47:22

+1

你得到的錯誤是什麼? – aphoria 2010-03-19 12:31:25

+0

我們忘記在h和以下代碼之間添加一個空格。應該是:g =「xcopy」&h&「」&「D:\ y \ E」 – sushant 2010-03-22 05:42:08

0

VBscript變量僅以它們的名稱引用,因此不需要像$或&這樣的前綴。我會想象其他建議將工作