先日、テスト用の簡単なHTMLファイルを複数作成する必要がありバッチを作成しました。バッチの中身は以下の通りです。
echo "<h1>test</h1>" > c:\temp\test.html
テキストエディタで作成したHTMLファイルを見ると不要なダブルコーテーションが入っています。

HTMLファイルを開くと当然ダブルコーテーションが表示されます。

これはまずいのでダブルコーテーションを削除すればいいかなと思って以下のコマンドを入力しました。
echo <h1>test</h1> > c:\temp\test.html
すると「> の使い方が誤っています。」とエラーが表示されました。ではシングルコーテーションで囲むのかと思ってやってみましたが、「指定されたファイルが見つかりません。」とエラーが表示されました。
エスケープさせないと駄目なのかと思いタグの前に「¥」をつけましたがこれも駄目。まさかこんなところでハマるとは・・・と思いつつググってみると正しい記述方法がわかりました。
エスケープは「¥」ではなく「^」(キャロット)を使う必要があることがわかりました。正しいコマンドは以下の通りです。
echo ^<h1^>test^</h1^> > test.html
テキストエディタで中身を見た結果です。

HTMLファイルを開くと想定通り表示されました。

コメント