読者です 読者をやめる 読者になる 読者になる
スポンサーリンク

「スタートアップ」に仕事をさせよう の補足: 共有フォルダ上の作業

コマンドプロンプト 共有フォルダ windows

以下のエントリの補足。

「スタートアップ」に,仕事をさせよう (朝,出社するだけで仕事が進む仕組み作り)
http://language-and-engineering.hatenablog.jp/entry/20100929/p1


朝,スタートアップで自動的に仕事が進む。

その際に,共有フォルダ上で作業したい場合がある。


そのバッチを書くための補足情報。

  • (1)共有フォルダ上のファイルを開きたい
  • (2)共有フォルダ上の全ファイルを監視したい

(1)共有フォルダ上のファイルを開きたい

メンバ全員が,共有フォルダ上の1つのファイルを,スタートアップによって一斉に開く・・・わけにはいかない。

以下のように,いったんローカルに退避させ,それから開こう。

@rem 共有フォルダ上のファイルをローカルで開く

set shared_dir=\\FILE_SERVER
set clone_dir=D:\clone


@rem 同期
if not exist %clone_dir% mkdir %clone_dir%
copy /Y %shared_dir%\スケジュール.xls %clone_dir%\コピー_スケジュール.xls


@rem 開く
start %clone_dir%\コピー_スケジュール.xls

(2)共有フォルダ上の全ファイルを監視したい

SVNリポジトリと違って,ファイルサーバ上にあるファイルは,更新されても気づかない。

  • 「誰か,新しくファイルやフォルダを作成したか」
  • 「何か,知らないうちに移動があったか」

などの情報を検出しにくいのだ。


以下は,それを毎朝検出するためのバッチ。

@rem フォルダ全体で昨日と差分があるかチェックする


@rem 設定項目
@set log_dir=D:\dir_log
@set search_dir=\\FILE_SERVER\
@set new_log_file=%log_dir%\new.txt
@set old_log_file=%log_dir%\old.txt
@set diff_file=%log_dir%\diff.txt


@rem ローテート(昨日のnewを今日のoldとする)
@copy /Y %new_log_file% %old_log_file%


@rem 今日のフォルダ構造を取得
@pushd %search_dir%
@echo treeを出力します。
@dir /s > %new_log_file%


@rem 昨日との差分を検出
@echo fcします。
@fc %new_log_file% %old_log_file% > %diff_file%
@more %diff_file%

@pause

これで,「共有フォルダ上のこっそり作業」を許さない。


(3)共有フォルダへの認証を自動的に済ませたい

認証情報を記憶してくれないようなフォルダもあるので,毎回手入力することになる。

それを自動化する。

@rem 共有フォルダに接続
net use z: /delete
net use z: \\192.168.1.1\hoge /user:ユーザ名 パスワード

ネットワークドライブの削除
http://questionbox.jp.msn.com/qa43190...

  • net use L: /delete


ドメインにログオンしていないクライアントから共有資源にアクセスする
http://www.atmarkit.co.jp/fwin2k/win2...

  • net useの接続先のUNCパスの末尾に「\」を付けると「システム エラー 67 が発生しました。ネットワーク名が見つかりません。」のエラーになるので注意。

補足

「共有フォルダ上でのスタートアップ作業」というテーマで発見や進歩があれば,随時追加する。