我想根据文件中包含给定字符串的行数来设置变量。
类似的东西:
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"
显然,这些选项都不起作用。
感谢。
答案 0 :(得分:15)
从命令行
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
答案 1 :(得分: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
)