题
我想设置一个可变的基于线路的数量在一个文件,该文件含有一个得到串。
是这样的:
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
这些数值为基础的结果:
- 0至少一个比赛被发现。
- 1,没有匹配被发现。
- 2或更大,出现了一个错误。
由于它看起来像你只是想看看如果传输完成的,并不总数的次串的出现,你可以做像这样的东西:
@echo OFF
@find /c /i "Transfer Complete" "C:\test path\ftp.LOG" > NUL
if %ERRORLEVEL% EQU 0 (
@echo Success
) else (
@echo Failure
)
不隶属于 StackOverflow