• 締切済み

WSHのCopyFile()メソッドで%systemroot%の使い方を教えてください

ネット等でいろいろ調べましたがわかりません。どなたか教えて頂けますでしょうか? VBSのCopyFolder()メソッドを使用し、あるフォルダを他の複数のPCのシステムフォルダ(C:\winnt or C:\Windows)へコピーしたいのですが、コピー先のOSが異なります(Windows2000とwindowsXP)。この場合、スクリプト中に"%systemroot%"を使うことは可能でしょうか? 可能なら、どのように書けばよいのでしょうか? よろしくお願いします。

みんなの回答

  • necomimi
  • ベストアンサー率41% (633/1540)
回答No.3

みつけました! 以下の方法でも環境変数から取れます Set ws=WScript.CreateObject("WScript.Shell") i=ws.ExpandEnvironmentStrings("%systemroot%")

COSMOS913
質問者

お礼

ありがとうございました。 iをもとに、.Copyfolder i,"・・・" とやればよいと言うことですよね。

  • notnot
  • ベストアンサー率47% (4901/10362)
回答No.2

環境変数の値の取得はこのように: Set WshShell = WScript.CreateObject("WScript.Shell") Set WshEnv = WshShell.Environment("PROCESS") WScript.Echo WshEnv("SYSTEMROOT")

COSMOS913
質問者

お礼

このような方法もあるのですね。 ありがとうございました。

  • necomimi
  • ベストアンサー率41% (633/1540)
回答No.1

環境変数から調べるのがわからなかったんで次の方法で GetSpecialFolder(0)は、Windowsフォルダを取得する Set fs=WScript.CreateObject("Scripting.FileSystemObject") Set ws=WScript.CreateObject("WScript.Shell") i=fs.GetSpecialFolder(0) o="C:\downloads2" msg=MsgBox (i&"から"&o&"へコピーします。いいですか?",vbYesNo) If msg=vbYes Then fs.CopyFolder i,o

COSMOS913
質問者

お礼

ありがとうございます。 てっきり、 %systemroot%をコマンドラインに入れないとダメ、と思い込んでました。 助かりました。またよろしくお願いします。

関連するQ&A