MENU

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

CATEGORY

大学 (91) 航空宇宙 (59) 写真 (33) 旅行 (16) 飯・酒 (11) コンピュータ (94) その他 (20)

TAG

ARCHIVE

RECENT

【写真】都市夜景撮影 英会話をまた習い始めました 【Perl】YAPC::Tokyo 2019 にスタッフとして参加してきました むちゃくちゃな就活をして,内定がでたので,博士進学が決まった 【写真】望遠レンズで白黒(ACROS)撮影@銀座

【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 (※公開されることはありません)

コメント