- 締切済み
コピーバッチの作成について。
コピーバッチの作成について。 現在フォルダのコピーバッチを作成しようと考えています。 ただ、未熟なもので、なかなか難しく、できればご教授していただければと思い、 投稿させていただきました。 尚、現在作成したいコピーバッチは下記となっています。 1. テストPC01に不定期に配置されるフォルダを、テストPC02上にコピーする。 (フォルダ名はTEST20100919という形で、TESTのみ固定で日付が毎回変動する) 1.5 フォルダがない場合はバッチファイル終了。 2. コピー後に、テストPC02の特定のサービスを停止する。 3. テストPC02にコピーした、TEST20100919をTESTにリネームする。 4. 2.で停止したサービスを起動する。 5. テストpc01のコピー元フォルダを削除する。 (また、上記のバッチで実行された内容をログに吐き出させたいと考えています) このような処理をバッチファイルで行うことは可能でしょうか。 可能でしたら、お手数ですがご教授願えないでしょうか。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- utakataXEX
- ベストアンサー率69% (711/1018)
回答No.3
- utakataXEX
- ベストアンサー率69% (711/1018)
回答No.2
- utakataXEX
- ベストアンサー率69% (711/1018)
回答No.1
補足
自分なりに追加・修正したい箇所を記述させて頂きました。 お手数だとは思いますが、ご助言の程よろしくお願い致します。 @echo off REM 変数定義 ********************************* >REM PC01のパス >set localDir=C:\testdata\ >REM PC02のパス >set remotetDir=\\PC02\testdata\ >REM PC01のログファイルのパス >set localLogDir=C:\testdata\log\ →起点がPC02なので、下記に変更しました。 REM PC01のパス set remotetDir=\\PC01\testdata\ REM PC02のパス set localDir=C:\testdata\ REM PC02のログファイルのパス set localLogDir=C:\testdata\log\ >REM 対象フォルダのフルパスの生成(バッチ実行日と同じ前提) >REM(フォルダ名はTEST20100919という形で、TESTのみ固定で日付が毎回変動する) >set todayData=TEST%date:/=% >set todayDir=%localDir%%todayData% →テストPC01に手動にてTEST****フォルダを配置するので必要無いでしょうか。 REM ログファイルのフルパス生成(TESTYYYYMMDD.log) set localLog=%localLogDir%TEST%date:/=%.log >REM リモートサービス起動/停止関連 >REM PC02のドメイン/PC02のユーザー >set remoteUser=<PC02のドメイン>\<PC02の実行ユーザー> >set remotePswd=<実行ユーザーのパスワード> →起点なのでremoteUserをPC02User/PC02Pswdに変更しました。 REM リモートサービス起動/停止関連 REM PC02のドメイン/PC02のユーザー set PC02User=<PC02のドメイン>\<PC02の実行ユーザー> set PC02Pswd=<実行ユーザーのパスワード> REM メイン処理 ********************************* REM 1.5 フォルダがない場合はバッチファイル終了。 if not exist "%todayDir%" ( echo %todayData% "フォルダがありません" >> "%localLog%" exit ) →どのように変更すればよいでしょうか。 REM 1. テストPC01に不定期に配置されるフォルダを、テストPC02上にコピーする。 copy "%todayDir%" "%remotetDir%" >> "%localLog%" 2>&1 →"%todayDir%" "%remotetDir%" を "%todayDir%TEST????????" "%LocalDir%" で問題ないでしょうか。 (フォルダについては、TEST2010****になります。) REM 2. コピー後に、テストPC02の特定のサービスを停止する。 psexec \\PC02 -u remoteUser -p remotePswd stop "TESTDAEMON" >> "%localLog%" 2>&1 →remoteUser・remotePwdをPC02User・PC02Pwdに変更 >>REN 2.5 テストPC02のTESTフォルダを削除 rmdir /s %localDir%TEST >> "%localLog%" 2>&1 →これで問題ないでしょうか。 REM 3. テストPC02にコピーした、TEST20100919をTESTにリネームする。 ren "%todayDir%" TEST >> "%localLog%" 2>&1 →"%todayDir%" TEST を"%localDir%TEST????????" TEST で問題ないでしょうか。 REM 4. 2.で停止したサービスを起動する。 psexec \\PC02 -u remoteUser -p remotePswd start "TESTDAEMON" >> "%localLog%" 2>&1 →remoteUser・remotePwdをPC02User・PC02Pwdに変更 REM 5. テストpc01のコピー元フォルダを削除する。 REM 不要ではないの? →最後にコピー元のPC01にあるフォルダを削除したいと考えています。