2012-02-28 13 views
5

私はdosバッチスクリプトを書いている間に状況があります。テキスト文字列のCRC(チェックサム)を計算するために使用しているツールでは、テキストがファイル内に存在する必要があります。私がCRCを取得しようとしているデータはファイル名ですが、バッチを使ってこのファイル名をテキストファイルに入れてCRCを計算すると、バッチスクリプトは自然に行末(CR/LF)と空白行を終わり。これがCRCを間違ったものにするので、問題です。Dosバッチ:行末のないファイルに書き込む

バッチスクリプトで行末を追加せずにテキストファイルに書き込む方法はありますか? IEはファイルに未完の単一の行を出力するには?

-K.Barad

+1

ツールはコマンドラインからの入力を受け入れるか、パイプ '?'で呼び出すことができますか? – vulkanino

答えて

9

<nul set /p ".=text" > file

は、それはより速く、より安全よりもecho.|set /P ="text" > file

NULリダイレクトがecho.(ところでecho.が失敗する可能性がある)とのパイプよりも高速であるのです。
引用符のスタイルにより、引用符も出力できます。

しかし、常に制限があります。
VistaとWin7には先頭のスペース、タブ、CRを抑止する「機能」があります。
Xpでは先頭に空白を含むテキストを出力できます。
出力テキストを等号で始めることはできません(構文エラーが発生します)

+0

ありがとう、これは私のために解決した –

+0

' file'を実行すると、端末がハングします。どうしたの? – raphaelh

+0

試してみると 'コマンドの構文が間違っています 'というメッセージが表示されるのはなぜですか? –

5

あなたでし

echo.|set /P ="text" > file 

source

、または直接パイプコマンドラインにテキスト: エコー "テキスト" | checksum_program.exe

編集は:

あなたがCRC32DOSを使用している場合、あなたはCR秒を無視して、コマンドラインオプション-cを使用することができます。

+0

残念ながら、それはカスタムCRCプログラムです。しかし、ヒントをお寄せいただきありがとうございます。新しい行を付けずにファイルを追加するのは便利なテクニックです。 –