[解決済み] Windowsのバッチファイルからコンソールに空行をエコーする [重複] [重複]
質問
Windowsのバッチファイルからコンソールにステータスメッセージを出力する際、以下のように出力したい。 空白行 を使用して、出力を分割しています。どうすればよいでしょうか。
どのように解決するのですか?
注:最初の回答は何度もアップヴォートされましたが、もっと良い回答ができると判断しました。私の元の(単純で見当違いな)回答は編集履歴で見ることができます。
マイクロソフトが空行を出力する手段を提供する意図があった場合
cmd.exe
このような簡単な操作であれば、マイクロソフトは必ず文書化していたはずです。この質問をする動機は、この欠落にあります。
で、空行を出力する手段がないので
cmd.exe
は
ではなく
を実現するための提案であると考えるべきです。
ハック
. ということは、空白行を
cmd.exe
というのは
保証
で動作する(または効率的に動作する)ように
すべて
という状況です。
それを踏まえて、以下、空行を出力するために推奨されている方法を
cmd.exe
. すべての推奨事項は
echo
コマンドを使用します。
echo.
これは、ほとんどの場合ではないにしても、多くの状況で機能します。
避けるべき
は、その代替案よりも遅く、実際に失敗することがあるからです (
こちら
,
こちら
そして
こちら
). 具体的には
cmd.exe
という名前のファイルをまず探します。
echo
を実行し、それを起動しようとする。もし
echo
が、たまたま現在の作業ディレクトリに存在した場合。
echo.
で失敗します。
'echo.' is not recognized as an internal or external command,
operable program or batch file.
echo:
echo\
の末尾にある
この回答
これらのコマンドは、例えばネットワークドライブの場所から実行された場合、遅くなる可能性があると著者は主張しています。遅くなる可能性のある具体的な理由は示されていません。しかし、ファイルシステムへのアクセスに関係しているのだろうと推測することはできます。(おそらく
:
と
\
は、Windowsのファイルシステムのパスで特別な意味を持つのでしょうか?)
しかし、これらのオプションが安全であると考える人もいるでしょう。
:
と
\
は、ファイル名として使用できません。そのため、あるいは別の理由で
echo:
はSS64.comで推奨されている
こちら
.
echo(
echo+
echo,
echo/
echo;
echo=
echo[
echo]
この長ったらしい議論
には、これらすべてと思われるものが含まれています。これらのオプションのいくつかは、次のように推奨されています。
このSOの答え
もあります。引用された議論の中で
この記事
を推奨しているような内容で終わっています。
echo(
と
echo:
.
冒頭の私の質問には、Windowsのバージョンが指定されていません。Windows10で実験したところ、以下のようになりました。
すべて
という名前のファイルがあるかどうかにかかわらず、空行を生成します。
echo
,
echo+
,
echo,
, ...,
echo]
は、現在の作業ディレクトリに存在します。(私の質問はWindows 10のリリースより前のものであることに注意してください。そのため、古いバージョンのWindowsでは動作が異なる可能性があることは認めます)。
で
この回答
,
ジェブ
は次のように主張しています。
echo(
常に
が動作します。私には、@jebの回答は、他の選択肢の信頼性が低いことを暗示していますが、その理由については詳しく述べられていません。なお、@jebは、私がこの回答で引用した他の文献に多くの貴重な内容を提供してくれています。
結論
行う
ない
使用
echo.
. 私が引用した資料では、他にも多くの選択肢がありましたが、この2つのサポートが最も権威があるように見えます。
echo(
echo:
しかし、どちらを使っても必ずトラブルが起きないという強い根拠は見つかっていません。
使用例です。
@echo off
echo Here is the first line.
echo(
echo There is a blank line above this line.
期待される出力
Here is the first line.
There is a blank line above this line.
関連
-
[解決済み] docker-machine: マシン名がない、"default" が存在しない
-
[解決済み] Windowsのコマンドラインに'which'に相当するものはありますか?
-
[解決済み] WindowsのCMDで1行に2つのコマンドを実行するにはどうしたらいいですか?
-
[解決済み] バッチファイル内で改行をエコーする方法を教えてください。
-
[解決済み] N日以上前のファイルを削除するバッチファイル
-
[解決済み] C#のWindowsコンソールアプリで現在行を更新するにはどうしたらいいですか?
-
[解決済み] バッチファイルにおけるカレントディレクトリとは何ですか?
-
[解決済み] Windowsでコマンドラインから空のファイルを作成するには?
-
[解決済み] Windowsのコマンドライン環境を使って、ファイル内のテキストを検索・置換するにはどうすればよいですか?
-
[解決済み】バッチ/cmdで "コメントアウト"(コメント追加)するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Postgres "psqlが内部コマンドまたは外部コマンドとして認識されない"
-
[解決済み] vbscriptのコンソールへの出力
-
[解決済み] Windowsの能書きは?
-
Win7でopensslを使用すると「ランダムな状態」を書き込めない問題
-
マイクロソフトのエラーコード
-
[解決済み] Windowsでgl3wを設定するには?
-
[解決済み] cmd lineを使用してファイルをZIPする方法は?
-
[解決済み] 管理者として実行せずにネットワークドライブにマップするためのBATファイル
-
[解決済み] Windows CLIでタイムスタンプを使ったPingを打つ
-
[解決済み] バッチファイル内で改行をエコーする方法を教えてください。