プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。
OSはWIN2K Proを使用しています。
WSHからXcopyを実行しようと思い
以下のように記述しました。
**********************************************
Option Explicit
Dim WshShell
Const Moto = "C:\Documents and Settings\user\デスクトップ\元"
Const Saki = "C:\Documents and Settings\user\デスクトップ\先"
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "xcopy Moto Saki /e /c /i
/q /h /k /y",0,true
**********************************************
ですが、うまく動作しません(エラーはでませんがコピ
ーされません)。
ダブルクォーテーションマークをいろいろ追加したり
したのですがうまくいきません。
正しいスクリプトの記述とダブルクォーテーションの
つけ方の規則など、どなたかご教授願います。

A 回答 (3件)

こんなところにスペースが・・・


失礼しました、忘れ物です(^^;;

Const Moto = """C:\Documents and Settings\user\デスクトップ\元"""
Const Saki = """C:\Documents and Settings\user\デスクトップ\先"""

パス名にスペースが入っている場合は、コマンドパラメータはダブルクォーテーションで囲む必要がありますよね。

VBScriptの場合、ダブルクォーテーションは文字列をあらわすため、単純に指定できないため、文字列中にダブルクォーテーションを含めたい場合は2つ連続して記述することで含めることができます。

#なので、ダブルクォーテーション3つで囲ってるように見えます。
    • good
    • 0
この回答へのお礼

take_tetsuさん、こんにちは。
おー!できました!!
そういえば、VBAも文字列を含めたいときは、
ダブルクォーテーションを2つ連続すること
があったような気がします。
VBSもVBAもVBの仲間なんだと改めて認識する
とともに、自分の勉強不足を痛感いたしました。
どうもありがごうございました。

お礼日時:2004/03/10 08:25

コピペミスりました(^^;



WshShell.Run "xcopy " & Moto & " " & Saki & " /e /c /i /q /h /k /y", 0, true

この回答への補足

taka_tetsuさん、こんにちは。
回答どうもありがとうございます。
教わったスクリプトをコピーして実行しましたが、
やはり何事もなく終了しました。
因みに、コマンドプロンプトから、
c:\>xcopy "C:\Documents and Settings\user\
デスクトップ\元" "C:\Documents and Settings\user\
デスクトップ\先" /e /c /i /q /h /k /y
で実行したところ、正常にコピーできます。
んー、私のパソコンの設定がどこかおかしいので
しょうか?
引き続きご教授いただきたいと思います。
よろしくお願いします。

補足日時:2004/03/09 19:41
    • good
    • 0

WshShell.Run "xcopy " & Moto & " " & Saki & " /e /c /i /q /h /k

/y","
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!