記事一覧

DOSバッチで共有フォルダにアクセスする

 

  
目次     



  

DOSバッチで共有フォルダにアクセスする

ハロー、みなさん。エジソンです。

DOSバッチで、他のサーバーにアクセスして、何らかの処理を行う方法をまとめてみました。


pushd・popdを使う

バッチプログラムから共有フォルダにアクセスする方法の一つに、pushd を使いルートディレクトリを切り替えてアクセスするという方法があります。

リスト1-1:do_in_remote_folder.batとして保存
@echo off

set curdir=%~dp0

pushd \\192.168.1.100\ezolab共有

rem 何かしらの処理を記述する
dir

popd


pushd コマンドでは、カレントディレクトリのパスを変更できます。pushdはスタックなので、popdすると、pushdを実施した時点のパスに戻ってくることができます。

pushdの、もう一つ有用な使い方には、ネットワークパスを指定して、ネットワークドライブを一時的に作成し切り替えるという使い方があります。

pushdをした後は、最後にpopdを忘れずに実行します。


リスト1-2:実行例
C:\Users\username\Desktop>do_in_remote_folder.bat
dirの実行結果 …



認証も同時に行う

任意のネットワークパスを開く場合に、認証が必要な場合もあります。その場合には、上述したバッチを実行した場合に、認証ダイアログが開かれ、認証情報の入力が促されます。

都度、認証してもらうというのは、セキュリティ上間違いではありませんが、利便性を考えてスキップしたくなることもあるでしょう。

そんな場合は、net useコマンドを使用します。


リスト2-1:do_in_remote_folder_with_auth.batとして保存
@echo off

set curdir=%~dp0

net use \\192.168.1.100 [パスワード] /user:[ユーザー名] >nul 2<&1
pushd \\192.168.1.100\ezolab共有

rem 何かしらの処理を記述する
dir

popd

上述したバッチの内容とほぼ同じで、一行付け足しています。pushdの手前で net use するだけでOKです。

この net useコマンドは、エクスプローラで対象となるサーバーの共有フォルダを開いていると、エラーが発生することがあるため、… > nul 2 < &1 で標準出力と標準エラー出力の出力を抑止しています。


関連記事

このエントリーをはてなブックマークに追加

コメント

コメントの投稿

非公開コメント

プロフィール

EZOLABブログへようこそ。
EZOLABは、札幌のソフトウェア会社です。

http://ezolab.co.jp

ezolab