ネットワーク上の共有フォルダ内のファイル名一覧を取得出力する方法

勿論ツールもあるものの、コマンドでやり方を覚えた方が何かと便利なので調べてみた。

■考え方
カレントディレクトリを該当ネットワークフォルダまで移動してDirコマンドでファイル一覧取得、出力

■実際
こちらを参考にさせて頂いた
http://www.hougetsudou.com/wp/archives/1529

通常のCDではネットワーク上のフォルダに移動できない。
CD \\192.168.1.*\共有フォルダ名 と入れた場合、エラーメッセージが表示される
「CMD では UNC パスは現在のディレクトリとしてサポートされません」

一時的に対象ネットワークフォルダをネットワークドライブに設定し、そのドライブをカレントドライブにした後、カレントディレクトリに移動する、という方法がある。

使うコマンドは pushd と popd の2つ。
pushdは、カレントディレクトリを記録・変更するコマンド。
popdはpushdコマンドで直前に記録されたディレクトリを復元するコマンド。
両者は基本的に一対で使用する。

まず、
pushd \\コンピュータ名\フォルダ名
で、自動的にネットワークドライブ接続して、そのドライブに移動。

作業完了後は、popd で元のディレクトリに戻ると共に、ネットワークドライブを解放。

/////////////////////////////////////////////////
ファイル名の取得とテキストへの書き出し方法
http://www.atmarkit.co.jp/ait/articles/0412/04/news014.html

指定方法は色々あるが、最終的にはこれで足りた。
dir * /b/a-d/s > \list.txt 
現在のフォルダ以下の全てのファイル名(パス付)を取得し、付加情報は除外し、テキスト出力する。

・指定詳細補足
ファイル名の書き出し
頭文字指定の例 r*
拡張子指定の例 *.txt
全て *

C:\WORK\TEXT>dir r* /b /a-d ……ファイル名だけを表示

C:\WORK\TEXT>dir r* /b /ad ……フォルダー名だけを表示

C:\WORK\TEXT>dir r* /b ……/bオプションでファイル名だけを出力
未指定の場合は空き領域サイズ等も出力されるため

C:\WORK\TEXT>dir r* /b /a-d /s ……フォルダーツリー内も検索

C:\WORK\TEXT>dir r* /b > \list.txt ……結果をファイルに出力
この場合、txtファイルはネットワークドライブのルート直下に保存される。
再実行すると自動的に上書きされる

この記事へのコメント

この記事へのトラックバック