2

ファイルの MD5 サムを生成する小さなバッチ スクリプトを作成しました。行を削除するとうまく機能しますが、この行を離れると@echo off、コンソール エミュレーターCmderバージョン 1.1.4.1 での実行がハングします。

@echo off

if [%1]==[] goto usage

for /f "delims=" %%i in ('certutil -hashfile %1 MD5 ^| find /v "CertUtil" ^| find /v "MD5"') do set output=%%i
set /p =%output: =%<nul >%1.md5

goto :eof

:usage
@echo Usage: %0 FILENAME
exit /b 1

set /p =%output: =%<nul >%1.md5行をに置き換えると、Windows ではなくCmderecho %output: =% >%1.md5で実行されるバッチ ファイルは機能しますが、不要な改行が追加で出力されます。cmd.exe

何が起こっている?

編集:この行はCmderのバッチ処理でハングしません:

set /p ="Hello" <nul

この行はCmderでのバッチ処理でハングします:

set /p ="Hello" <nul >out

どちらの行も、コマンド プロンプト ウィンドウで Windows コマンド プロセッサによって実行されるバッチ ファイルで機能します。

4

0 に答える 0