- ベストアンサー
WSHでバックアップを行いたい
ActiveDirectoryでサーバを運用しています。 Mydocumentをサーバにリダイレクトし、排他的権限によりユーザ自身からしか操作を行えないように設定しています。 そこで、MyDocumentのバックアップをWSHにて行いたいと考えています。 バックアップしたい環境は以下になります。 バックアップ元:D:\各ユーザ名 バックアップ先:\\server1\backup\各ユーザ名 人数が多いので、各ユーザ名の箇所に%USERNAME%で環境変数を用いて運用しようと考えています。 http://oshiete1.goo.ne.jp/qa801219.html xcopyの使い方はここを参考に設定したのですが、環境変数の設定方法で詰まっております。 どうすれば良いのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Set wshShell = WScript.CreateObject("WScript.Shell") WScript.Echo wshShell.ExpandEnvironmentStrings("%USERNAME%") みたいな。
その他の回答 (2)
- temtecomai2
- ベストアンサー率61% (656/1071)
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 とか。
お礼
おお~、出来ました! 丁寧なご回答、ありがとうございました。
- temtecomai2
- ベストアンサー率61% (656/1071)
いや、だからさ、ホラ、 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種類のパス文字列のお尻にユーザー名の文字列を連結したいんですよね。 じゃぁもうできるじゃない。 がんばって。
補足
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 こういう記述ではうまくいくのですが、 教えて頂いた文言はどこに挿入すればよいのでしょうか・・・?