7

MS-DOS でプログラムの出力を印刷したいので、次のような .bat ファイルを作成しました。

cls
ruby foo.rb

しかし、コマンドプロンプトに表示される出力は次のようになります。

c:\workspace>ruby foo.rb
foo output
c:\workspace>

コードの本来の動作に関係のないもので Ruby コードを汚したくないので、MS-DOS を使用して出力に改行を挿入したかったのです。

MS-DOS で必要なコマンドは、'type' と 'print' だけですが、どちらもファイルを印刷するためのものです。

空行が2行あるテキストファイルを作成してtypeコマンドで出力してみましたが、見づらかったです。

どんなアイデアでも大歓迎です。

4

7 に答える 7

26

echo.新しいラインを生み出します。

したがって、スクリプトは次のようになります。

@ECHO OFF
cls
echo.
ruby foo.rb
于 2009-02-23T16:37:13.893 に答える
6

使用するヒントが同じ 4 つの回答があったとしてもECHO.、それは最善の解決策ではありません。

2 つの欠点があります。

  1. 通常のコマンド
    ECHO.よりも約 10 倍遅いです。これは、ディスク アクセスを強制する ためです。 echoECHO.

  2. 失敗する可能性があります (拡張子なしの)
    名前のファイルが存在する場合、ECHOECHO.コマンドは、空の行をエコーする代わりに、ファイルが見つからないというエラーになります。

しかし、その時何ができるでしょうか?
単純な空行の場合、多くの作業方法があります。

echo+
echo=
echo;
echo,
echo:
echo(

/?しかし、変数が空であったり、 や のような奇妙な内容を含んでいたりしても、変数の内容を安全にエコーする方法が必要な場合があります\\..\..\windows\system32\calc.exe

ECHO<character>%variable%

echo=/?
echo;/?
echo,/?
echo:\\..\..\windows\system32\calc.exe

その後、ほとんどのコマンドは失敗し、ECHO(どのような状況でも機能します。
少し奇妙に見えますが、機能し、閉じ括弧を必要とせず、問題も発生しません。

于 2012-04-16T12:38:50.813 に答える
4

どうですか:

@echo off
cls
echo.
ruby foo.rb
echo.

さよなら

于 2009-02-23T16:42:52.227 に答える
3

これを試して

echo.
于 2009-02-23T16:35:55.690 に答える
2

MS-DOS バッチ ファイルに新しい行を表示するには、echo コマンドの後にピリオドを付けて使用します。

echo.
于 2009-02-23T16:36:09.997 に答える
1

私はジェブに同意します。"echo(" は間違いなく高速で、ファイル アクセスを呼び出しません。試してみるだけで、自分でわかるでしょう。試してみたいと思うかもしれない小さなテストを次に示します。

「echo」という名前のファイルを作成し、同じディレクトリに test.bat または test.cmd ファイルを作成し、スクリプトに次の内容を含めます。

@echo off
echo %time%
echo.
echo Hello, World
echo.
echo.
echo What time is it?
echo.
echo It's Miller Time!
echo.
echo.
echo CHEERS!
echo.
echo %time%

新しく作成したバッチ ファイルを実行します。あなたは何を得ますか?ファイル「echo」が同じディレクトリに存在する場合の一連のエラー メッセージ。

次に、「echo」ファイルを削除します。

私のシステムでは、「エコー」を使用して開始から終了まで約 0.05 秒かかりました。ファイルアクセスが発生しているため、メソッド。

次に、すべての「エコー」を置き換えます。上記のテスト ファイルで「echo(」を使用して再度実行します。

「echo(」ステートメントを使用すると、開始から終了まで約 0.01 秒かかります。

最終テストでは、同じディレクトリに「echo」というファイルを再導入し、最後にもう一度バッチを実行します。

エラー メッセージはありません。

QED

于 2013-12-03T17:53:00.557 に答える
0

ここであなたが何を望んでいるのかははっきりしませんが、おそらくこれが役立つでしょう。

出力を別の場所に送信する場合は、dos 出力「パイプ」を使用します。

ruby foo.rb > out.txt

ruby コマンドの出力を out.txt ファイルに出力します。

出力を制御したい場合は、ECHO を使用します。

@ECHO OFF/ON //turns off/on command output
ECHO "Blah" //writes "Blah" to the console.
ECHO. //writes a blank line to the console.
于 2009-02-23T16:40:18.753 に答える