与えられた文字列を含むファイルの行数に基づいて変数を設定したいと思います。
何かのようなもの:
set isComplete = 0
%isComplete% = find /c /i "Transfer Complete" "C:\ftp.LOG"
IF %isComplete% > 0 ECHO "Success" ELSE ECHO "Failure"
または:
set isComplete = 0
find /c /i "Transfer Complete" "C:\ftp.LOG" | %isComplete%
IF %isComplete% > 0 ECHO "Success" ELSE ECHO "Failure"
明らかに、これらのオプションはどちらも機能しません。
ありがとう。
コマンドラインから
for /f "tokens=3" %f in ('find /c /i "Transfer Complete" "C:\ftp.LOG"') do set isComplete=%f
バッチスクリプトから
for /f "tokens=3" %%f in ('find /c /i "Transfer Complete" "C:\ftp.LOG"') do set isComplete=%%f
for
コマンドを使用する必要はありません。 find
は、結果に基づいてERRORLEVEL
を次のいずれかの値に設定します。
文字列が表示される合計回数ではなく、転送が完了したかどうかを確認したいだけのように見えるので、次のようにすることができます。
@echo OFF
@find /c /i "Transfer Complete" "C:\test path\ftp.LOG" > NUL
if %ERRORLEVEL% EQU 0 (
@echo Success
) else (
@echo Failure
)