Action disabled: media
documents:windows:batch:batch-006
CMD.EXE /C のメモ
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>
‟&”で区切られてしまうから。
CALLで呼び出す場合も同じ
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>
CMD.EXE /C で呼び出す
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>
documents/windows/batch/batch-006.txt · 最終更新: 2024/11/01 16:25 by k896951