ファイル(フォルダ)の存在を検出するWindows用バッチプログラム
タスクの例
を使用した後 バッチプログラムによるファイルの一括検索とコピー/カット をバッチプログラムで実行しても、元のキーワードと比較して、何ファイル検索されたかを知る必要があることが多いのです。そのためには、キーワードがファイルの束の中に存在するかどうかを一括して検出できるツールが必要です。例えば、以下のようなファイルがあるとします。
AA1
BB2
DD3
BBC1
EE2
アッブ
を含むファイル名から一括検索したい。
AA
BB
CC
のファイルは
希望する結果は AA1, BB2, BBC1, Abb
Excelのvlookupコマンドとほぼ同じですが、バッチプログラムでは、ファイル名のリストをエクスポートする必要がなく、ファイルディレクトリで直接操作できる点が異なります。
インプリメンテーション
と同じです。 一括検索 同様に、このタスクを実装するには、やはり強力なforコマンドが必要で、findコマンドと組み合わせることで、これを実現することができます。また、そのフォルダが存在するかどうかも検出されます。最後に、見つかったキーワードと見つからなかったキーワードが、2つの別々のテキストファイルの下に出力されます。
まず、キーワードを1行ずつ、"list.txt"という名前のテキストファイルに保存します。スペース、空白行、空白戻しはないことに注意してください。たとえば、次のようになります。
#list.txt ファイルの内容
AA
BB
CC
次に、以下のコードをバッチファイルとして拡張子*.batで保存してください。
::Batch search & check
::by lfhacks.com, Apr 1,2009
@echo off
setlocal enabledelayedexpansion
color 1E
echo This program checks if a file (folder) exists in the current directory for the given keyword
echo.
echo by www.lfhacks.com
echo.
echo For example, to check for missing file names
if not exist list.txt (echo.
echo Please save the list of keywords as list.txt first...
pause > NUL
exit
)
echo.
echo Do you want to check files or directories?
echo.
set /p opt=file(f) or directory(d):
if %opt% NEQ f if %opt% NEQ d (
echo Respond to errors.
pause >NUL
exit
)
if %opt%==d (
dir /AD /B * >tempp
)
if %opt%==f (
set /p ext=Specify the file extension (not including ". ", do not specify please enter *):
dir /A-D /B *. !ext! >tempp
)
if exist result.txt del result.txt
set count=0
for /f "tokens=*" %%i in (list.txt) do (
find "%%i" tempp >NUL
echo check %%i...
if !errorlevel! EQU 1 (
echo --- Not Found ---
echo %%i >> Not_found.txt
set /a count+=1
) ELSE (
echo %%i >> Found.txt
)
)
del tempp
echo.
if %count% NEQ 0 echo Task complete! A total of %count% keywords do not exist and the results have been saved to Not_found.txt
if %count% EQU 0 echo All the keywords in the list exist
echo The keywords that exist are saved to Found.txt
pause >NUL
exit
Windows効率化バッチ処理の詳細については、以下の関連リンクを参照してください。
関連
-
cmdデスクトップショートカット一括作成ツール
-
batの一括出力でコードが乱れる問題の解決
-
自動コード投入とプロジェクトデプロイメントのためのバッチファイルbatスクリプト
-
バッチ版 chm ファイルデコンパイラ v1.3
-
ウィンドウは、git update (git pull) を定期的に実行するタスクスケジュールを設定し、実行中の cmd を非表示にします。
-
DOSコマンドラインからbatバッチプログラムを使って空のフォルダーをすべて削除する方法
-
Windowsでbatスクリプトを使用したFTPの時間指定アップロードとダウンロード
-
DOS(バット)文字列置換の原理
-
バッチ式再帰計算の実装コード N!
-
バッチ処理でftpディレクトリにファイルをアップロードする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
バッチバットは、同じ内容のtxtテキストの最初の列の最後の列に数字を追加する
-
ループ使用のためのWindows batスクリプトを解説
-
バッチ処理における文字列分割コード
-
バッチBATスクリプトセットコマンド使用詳細(バッチハウスバッチャー)
-
ワンクリックcmdでJavaの環境変数を表示、変更(上書き、追加)などを設定。
-
DOS共通コマンド(find findstr)のバッチ処理マニュアル
-
certutilを使ったHex2BinとBase64の暗号化方式
-
DOSバッチ処理応用チュートリアル 第2章 DOSループ for コマンドの解説
-
DOSバッチコマンド For loopコマンド詳細説明
-
複数の新規ドメインをホストに一括で追加