我想根据文件中包含给定字符串的行数设置变量.
就像是:
set isComplete = 0
%isComplete% = find /c /i "Transfer Complete" "C:\ftp.LOG"
IF %isComplete% > 0 ECHO "Success" ELSE ECHO "Failure"
Run Code Online (Sandbox Code Playgroud)
要么:
set isComplete = 0
find /c /i "Transfer Complete" "C:\ftp.LOG" | %isComplete%
IF %isComplete% > 0 ECHO "Success" ELSE ECHO "Failure"
Run Code Online (Sandbox Code Playgroud)
显然,这些选项都不起作用.
谢谢.
Pre*_*gha 15
从命令行
for /f "tokens=3" %f in ('find /c /i "Transfer Complete" "C:\ftp.LOG"') do set isComplete=%f
Run Code Online (Sandbox Code Playgroud)
从批处理脚本
for /f "tokens=3" %%f in ('find /c /i "Transfer Complete" "C:\ftp.LOG"') do set isComplete=%%f
Run Code Online (Sandbox Code Playgroud)
Pat*_*uff 12
您不需要使用该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
)
Run Code Online (Sandbox Code Playgroud)