2016/06/22
自分用メモ
H:\job>dir
ドライブ H のボリューム ラベルは LaCie です
ボリューム シリアル番号は 82D7-3881 です
H:\job のディレクトリ
2016/06/22 05:57 <DIR> .
2016/06/22 05:57 <DIR> ..
2016/06/22 05:58 34 love&peace.bat
2016/06/22 05:57 29 micro soft.bat
2016/06/22 05:56 24 yahoo.bat
3 個のファイル 87 バイト
2 個のディレクトリ 2,441,088,843,776 バイトの空き領域
H:\job>love&peace.bat
'love' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
'peace.bat' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
H:\job>micro soft.bat
'micro' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
H:\job>yahoo.bat
Yahoo!
H:\job>
空白や制御で使う記号が入ったファイル名のバッチファイルを実行するにはダブルコーテーション(“)で括る。
H:\job>"love&peace.bat" "love & peace !" H:\job>"micro soft.bat" micro soft! H:\job>
なぜlove&peace.batだけ出力がダブルコーテーションで囲ってあるかというと、こういう理由による。
H:\job>echo love&peace ! love 'peace' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 H:\job>
‟&”で区切られてしまうから。
h:\job>CALL love&peace.bat 'love' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 'peace.bat' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 h:\job>CALL "love&peace.bat" "love & peace !" h:\job>CALL micro soft.bat 'micro' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 h:\job>CALL "micro soft.bat" micro soft! h:\job>
H:\job>CMD.EXE /C love&peace.bat 'love' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 'peace.bat' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 H:\job>CMD.EXE /C micro soft.bat 'micro' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 H:\job>CMD.EXE /C yahoo.bat Yahoo! H:\job>
これもダブルコーテーションで囲ってみる。
H:\job>CMD.EXE /C "love&peace.bat" 'love' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 'peace.bat' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 H:\job>CMD.EXE /C "micro soft.bat" micro soft! H:\job>
困った。‟&”をエスケープできない…
この情報があって本当によかった…
Windows Script Programming:CMD /C;←ここにお呪いを付けよう。
h:\job>CMD.EXE /C;"love&peace.bat" "love & peace !" h:\job>CMD.EXE /C;"micro soft.bat" micro soft! h:\job>CMD.EXE /C;"yahoo.bat" Yahoo! h:\job>