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

VBscript変数は名前でのみ参照されるため、$や&などのプレフィックスは必要ありません。他の提案もうまくいくと思います

于 2010-03-22T01:33:50.653 に答える
0
g = "xcopy " & h & " D:\y\ /E"
于 2010-03-19T11:34:15.477 に答える