BATファイルでパスワード付きのWindows共有フォルダにアクセスする方法

自動化厨のための忘備録

 

共有フォルダを利用する流れ

  1. ユーザー名とパスワードを使い共有フォルダへ接続
  2. 共有フォルダで削除やコピーなどの作業
  3. 共有フォルダの切断

 

対応コマンド(括弧内は任意)

  1. net use (共有フォルダへのパス) (PASSWORD) /user:(USERNAME) /Y
    /Y : 確認なしで接続
  2. (サーバー上で適当に処理 hogehoge)
  3. net use (共有フォルダの場所) /delete

 

記述例(パス付き共有サーバーに日時のディレクトリを作成)

@echo off

setlocal

 

rem ------ 定義 ------

set SERVER_PATH=\\test_server

set USERNAME=admin

set PASSWORD=admin_pass

 

rem 日時取得(時間が1桁の場合は空白になるため0で置換)

set time2=%time: =0%

set yyyyMMdd_hhmm=%date:~0,4%%date:~5,2%%date:~8,2%_%time2:~0,2%%time2:~3,2%

set DIRNAME=%yyyyMMdd_hhmm%

 

rem ------ 処理 ------

rem 1. 接続

net use %SERVER_PATH% %PASSWORD% /user:%USERNAME% /Y

rem 2. 処理

mkdir %SERVER_PATH%\%DIRNAME%

rem 3. 切断

net use %SERVER_PATH% /delete 

 

簡単処理ならこれでOK

 

もし、GitとかJenkinsを利用しているならばBATファイル実行に失敗する不可解な現象があることに注意(このWindowsのバグで実装が2日は遅れた)

改行コード LF で日本語を含むバッチファイルの動作がおかしい件

 Windows 7ですら発生したので、根は深そう。
解決策として全部半角英数字で記述。