robocopyを実施する際、共有フォルダにアクセス時、パスワード認証が必要な場合があります。
そのような状況の時にバッチファイルへパスワード認証の設定の書き方をメモしておきます。
robocopyのバッチファイルの作成は以下のページも参考にしてください。
「robocopy」で共有フォルダへのパスワード認証を設定した書き方
共有フォルダへのパスワード認証を実施した、接続方法として「net use」コマンドを実施します。
以下のバッチファイルではそれぞれの共有フォルダ(パスワード認証)へアクセスし、robocopyを実施するコマンドとなります。
※移行用robocopyのバッチファイル「test.cmd」
::既存共有フォルダA→移行先共有フォルダBへrobocopy set src=\192.168.1.1共有log set dst=\example.comlog set log=C:UsersAdministratorDesktopWin_MV net use %src% /user:<user-id> <password> net use %dst% /user:<user-id> <password> robocopy %src% %dst% /s /e /mir /r:1 /w:1 /LOG+:"%log%test_mirror.log" pause
ファイルの冒頭に書かれている「::」はコメントアウトとなります。
各コマンドの説明は以下を参考にしてください。
「set」コマンドで変数を作成
3-5行目では「set」コマンドを実施し、ファイルパスをそれぞれ変数に変換しています。
- robocopy元を「src」
- robocopy先を「dst」
- ログファイルを「log」
「user」オプションで共有フォルダ(パスワード認証)へアクセス
7-8行目で「user」コマンドを実行し、それぞれのコピー元と宛先(srcとdst)を指定し、ユーザーID・パスワードを記述します。
net use %src% /user:<user-id> <password>
これにより、事前に共有フォルダへのアクセスを許可しておきます。
最後にrobocopyを実施し、ログファイルを出力する
上記で共有フォルダへのアクセス許可が成功すれば後は以下コマンドで、robocopyを実行します。
robocopy %src% %dst% /s /e /mir /r:1 /w:1 /LOG+:"%log%test_mirror.log"
logは、ローカルPCにのフォルダに保存するようにしました。
「pause」コマンドはコマンドプロンプトを起動状態のままにしておく
最後に書かれている「pause」コマンドはバッチファイルが実行される際、コマンドプロンプトを落とさず、起動状態のままにしてくれます。
これを実行していると、バッチファイル実行時にどのエラーで処理が止まったのかも確認ができるので、必ず入れておきます。
共有フォルダへのパスワード認証とrobocopyを組み合わせたバッチファイルの書き方は以上となります。
エンジニアのオンライン学習
ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。
おすすめオンライン教材 | |
自宅で学習ができるオンラインスクール | |
ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。
コメントを残す