ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:samakichi WSHでバックアップを行いたい
困り度:
  • すぐに回答を!
ActiveDirectoryでサーバを運用しています。
Mydocumentをサーバにリダイレクトし、排他的権限によりユーザ自身からしか操作を行えないように設定しています。

そこで、MyDocumentのバックアップをWSHにて行いたいと考えています。
バックアップしたい環境は以下になります。

バックアップ元:D:\各ユーザ名
バックアップ先:\\server1\backup\各ユーザ名

人数が多いので、各ユーザ名の箇所に%USERNAME%で環境変数を用いて運用しようと考えています。
http://oshiete1.goo.ne.jp/qa801219.html
xcopyの使い方はここを参考に設定したのですが、環境変数の設定方法で詰まっております。

どうすれば良いのでしょうか?
質問投稿日時:08/03/19 15:33
質問番号:3876368
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

 

回答者:temtecomai2 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
とか。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:08/03/22 15:10
回答番号:No.3
この回答へのお礼おお〜、出来ました!
丁寧なご回答、ありがとうございました。

回答

 

回答者:temtecomai2 いや、だからさ、ホラ、
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種類のパス文字列のお尻にユーザー名の文字列を連結したいんですよね。
じゃぁもうできるじゃない。
がんばって。
種類:アドバイス
どんな人:一般人
自信:自信あり
回答日時:08/03/21 18:07
回答番号:No.2
この回答への補足USERNAMEの取得と出力される所までは、こちらに質問させて頂く前に辿り着いていたのですが、
そこから先、どう繋げて良いのかが分からないのです・・・。
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

良回答20pt

回答者:temtecomai2 Set wshShell = WScript.CreateObject("WScript.Shell")
WScript.Echo wshShell.ExpandEnvironmentStrings("%USERNAME%")
みたいな。
種類:回答
どんな人:経験者
自信:自信あり
回答日時:08/03/19 20:36
回答番号:No.1
この回答への補足お返事ありがとうございます。

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

こういう記述ではうまくいくのですが、
教えて頂いた文言はどこに挿入すればよいのでしょうか・・・?
この回答へのお礼この回答にお礼をつける(質問者のみ)
 
最新から表示回答順に表示良回答のみ表示