• ベストアンサー

WSHでバックアップを行いたい

ActiveDirectoryでサーバを運用しています。 Mydocumentをサーバにリダイレクトし、排他的権限によりユーザ自身からしか操作を行えないように設定しています。 そこで、MyDocumentのバックアップをWSHにて行いたいと考えています。 バックアップしたい環境は以下になります。 バックアップ元:D:\各ユーザ名 バックアップ先:\\server1\backup\各ユーザ名 人数が多いので、各ユーザ名の箇所に%USERNAME%で環境変数を用いて運用しようと考えています。 http://oshiete1.goo.ne.jp/qa801219.html xcopyの使い方はここを参考に設定したのですが、環境変数の設定方法で詰まっております。 どうすれば良いのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

Set wshShell = WScript.CreateObject("WScript.Shell") WScript.Echo wshShell.ExpandEnvironmentStrings("%USERNAME%") みたいな。

samakichi
質問者

補足

お返事ありがとうございます。 Option Explicit Dim WshShell Set WshShell = CreateObject("WScript.Shell") Const A = "C:\A" Const B = "C:\B" WshShell.Run "xcopy " & A & " " & B & " /D /E /C /I /Q /R /H /Y /O", 0, true こういう記述ではうまくいくのですが、 教えて頂いた文言はどこに挿入すればよいのでしょうか・・・?

その他の回答 (2)

回答No.3

Const A = "C:\A\" Const B = "C:\B\" Dim WshShell Set wshShell = WScript.CreateObject("WScript.Shell") Dim userName userName = wshShell.ExpandEnvironmentStrings("%USERNAME%") WshShell.Run "xcopy " & A & userName & " " & B & userName & " /D /E /C /I /Q /R /H /Y /O", 0, true でどうでしょうか? パスの途中にスペースが含まれたりするなら WshShell.Run "xcopy """ & A & userName & """ """ & B & userName & """ /D /E /C /I /Q /R /H /Y /O", 0, true とか。

samakichi
質問者

お礼

おお~、出来ました! 丁寧なご回答、ありがとうございました。

回答No.2

いや、だからさ、ホラ、 Set wshShell = WScript.CreateObject("WScript.Shell") WScript.Echo wshShell.ExpandEnvironmentStrings("%USERNAME%") ってのを適当な名前のスクリプトファイルにして実行してみました? 今ログオンしているあなたのユーザー名が出力されませんでしたか? で、何がしたいんでしたっけ? 2種類のパス文字列に %USERNAME% で取得できる文字列を加えたいんじゃありませんでしたっけ? Option Explicit Dim WshShell Set WshShell = CreateObject("WScript.Shell") Const A = "C:\A" Const B = "C:\B" WshShell.Run "xcopy " & A & " " & B & " /D /E /C /I /Q /R /H /Y /O", 0, true この中にある 2種類のパス文字列のお尻にユーザー名の文字列を連結したいんですよね。 じゃぁもうできるじゃない。 がんばって。

samakichi
質問者

補足

USERNAMEの取得と出力される所までは、こちらに質問させて頂く前に辿り着いていたのですが、 そこから先、どう繋げて良いのかが分からないのです・・・。

関連するQ&A

専門家に質問してみよう