我想设置一个可变的基于线路的数量在一个文件,该文件含有一个得到串。

是这样的:

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
)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top