MENU

溶けかけてるうさぎ HP BLOG TOP RECENT ARTICLES POPULAR ARTICLES ABOUT THIS BLOG

CATEGORY

大学 (99) 航空宇宙 (67) 写真 (45) 旅行 (23) 飯・酒 (13) コンピュータ (101) その他 (27)

TAG

ARCHIVE

RECENT

【星景写真】種子島で星景写真撮影 【写真】令和元年度 富士総合火力演習 ―FUJIFILM X-T3 で戦車の火炎を撮る― Smart Kitchen Summit Japan 2019に参加してきた 人生初ライブ:ポルカドットスティングレイ「有頂天 TOUR」 【カメラ】FUJIFILM X-T3用にZEISSのMakro-Planarを買った ―Touit 2.8/50M―

【bat】for文変数では,&を含むファイルパスをechoしてもエラーにならない

事象発生日:2018-01-21

記事公開日:2018-01-22

最近なぜかバッチファイル (Batch File) を書く機会が多くて....

色々実験していたら,for文変数で&を含むファイルパスをechoしてもエラーにならないことに気づいた.

1.動作環境

Microsoft Windows 10 Home (64bit)

2.準備

以下のようなディレクトリを準備し,このファイルパスを再帰的に表示する.

X:.
│  1.bat
│
└─root
    ├─hoge
    │      file1.txt
    │      file & file.txt
    │
    └─fuga & piyo
            file1.txt
            file & file.txt
ディレクトリ

3.ソースコードと実行結果

@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' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
実行結果

3.考察

for文変数%%Aとそれから渡された変数のうち,for文内部のものだけファイルパスに&があってもエラーが出ていない.

 

理由はわからなかったが,特殊なプロパティでも保持しているのだろうか?

詳細知っている人がいたら教えてください.

4.関連記事

コメントを投稿

名前

Email (※公開されることはありません)

コメント