MENU

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

CATEGORY

大学 (108) 航空宇宙 (75) 写真 (54) 旅行 (28) 飯・酒 (14) コンピュータ (103) その他 (30)

TAG

ARCHIVE

RECENT

2019年まとめと2020年への抱負 【写真】今年の写真活動振り返り 【写真】HDR合成は夜景の水面と相性が悪そう 【Archive】駒場祭企画「10分で伝えます!東大研究最前線」講演スライド 【鉄道旅】青春18きっぷ 飯田線・高山本線 完乗旅

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

コメント