事象発生日:2018-01-21
記事公開日:2018-01-22
アクセス数:6412
最近なぜかバッチファイル (Batch File) を書く機会が多くて....
色々実験していたら,for文変数で&を含むファイルパスをechoしてもエラーにならないことに気づいた.
Microsoft Windows 10 Home (64bit)
以下のようなディレクトリを準備し,このファイルパスを再帰的に表示する.
X:.
│ 1.bat
│
└─root
├─hoge
│ file1.txt
│ file & file.txt
│
└─fuga & piyo
file1.txt
file & file.txt
@echo off for /r %%A in (*.*) do ( echo %%A set FILE=%%A call echo %%FILE%% call :SUB ) echo. setlocal enabledelayedexpansion for /r %%A in (*.*) do ( echo %%A set FILE=%%A echo !FILE! call :SUB ) endlocal exit /b :SUB echo %FILE% exit /b
X:\1.bat X:\1.bat X:\1.bat X:\root\hoge\file1.txt X:\root\hoge\file1.txt X:\root\hoge\file1.txt X:\root\hoge\file & file.txt X:\root\hoge\file 'file.txt' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 X:\root\fuga & piyo\file1.txt X:\root\fuga 指定されたパスが見つかりません。 X:\root\fuga & piyo\file & file.txt X:\root\fuga 指定されたパスが見つかりません。 'file.txt' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 X:\1.bat X:\1.bat X:\1.bat X:\root\hoge\file1.txt X:\root\hoge\file1.txt X:\root\hoge\file1.txt X:\root\hoge\file & file.txt X:\root\hoge\file & file.txt X:\root\hoge\file 'file.txt' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 X:\root\fuga & piyo\file1.txt X:\root\fuga & piyo\file1.txt X:\root\fuga 指定されたパスが見つかりません。 X:\root\fuga & piyo\file & file.txt X:\root\fuga & piyo\file & file.txt X:\root\fuga 指定されたパスが見つかりません。 'file.txt' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
for文変数%%Aとそれから渡された変数のうち,for文内部のものだけファイルパスに&があってもエラーが出ていない.
理由はわからなかったが,特殊なプロパティでも保持しているのだろうか?
詳細知っている人がいたら教えてください.
名前
Email (※公開されることはありません)
コメント