sknt

4歩進んで5歩戻る

バッチでフォルダ内のテキストファイルを表示する

実行環境の確認

tree test /f

バッチ実行結果

フォルダー パスの一覧
ボリューム シリアル番号は DEA5-2062 です
C:\USERS\RERERO\DESKTOP\BATWORK\TEST
    readfile.txt
サブフォルダーは存在しません

ファイルを一斉に開くバッチ

for %V in ( test\*.txt ) do %V

バッチ実行結果

コマンドプロンプト上で入力して実行すれば成功(readfile.txt が メモ帳で開かれる)
バッチファイルをダブルクリックで実行すると、何も起こらない。

問題のバッチをコマンドプロンプトで呼び出す

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\Users\rerero>start C:\Users\rerero\Desktop\batwork\fileopen.bat

C:\Users\rerero>

実行結果

V の使い方が誤っています。

C:\Users\rerero>for V

C:\Users\rerero>

対応

コマンドプロンプトで実行するときと、バッチで実行するときで%の数が異なることがあったことがある。
→%を追加。

ファイルを一斉に開くバッチ ver2

for %%V in ( test\*.txt ) do %%V

結果

redfile.txt がメモ帳で開かれる

%% はなぜエラーなのか。

バッチファイルの標準系が%%で、コマンドプロンプト上での実行は%だから。

for (オプション) %%アルファベット1文字 in (ループ処理の対象) do コマンド