我有一条路: \%VARIABLE%svr0001 \ E $ \用户\%VARIABLE%POS00 ?? \ E2ELOGS * .DBG
唯一改变的字符是' ??' (%VARIABLE%POS00 ??)。
如果不为每个可能的更改值创建path exists语句,我将如何使以下脚本工作:
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('find /c /i "Error : -2" "\\%VARIABLE%svr0001\e$\Users\%VARIABLE%POS00??\E2ELOGS\*.dbg"') do (
set "$line=%%a"
set "$lastchar=!$line:~-1!"
if !$lastchar! gtr 0 echo %%a >>NO_ACK_ERROR-2.txt
)
答案 0 :(得分:1)
试试这样:
@echo off
setlocal enabledelayedexpansion
for /l %%x in (1,1,15) do (
set "$number=0%%x"
for /f "delims=" %%a in ('find /c /i "Error : -2" "\\%VARIABLE%svr0001\e$\Users\%VARIABLE%POS00!$number:~-2!\E2ELOGS\*.dbg"') do (
set "$line=%%a"
set "$lastchar=!$line:~-1!"
if !$lastchar! gtr 0 echo %%a >>NO_ACK_ERROR-2.txt
))
答案 1 :(得分:0)
如果我理解正确,你想检查名称为POS001-POS0015的日志文件,下面的答案可能就是你的答案。
setlocal enabledelayedexpansion
for /l %%i in (1,1,15) do (
set "num=%%i"
if "!num:~0,1!" neq "0" set "num=0!num!"
set "filepath=\\%VARIABLE%svr0001\e$\Users\%VARIABLE%POS00!num!\E2ELOGS\*.dbg"
for /f "delims=" %%a in ('find /c /i "Error : -2" "!filepath!"') do (
set "$line=%%a"
set "$lastchar=!$line:~-1!"
if !$lastchar! gtr 0 echo %%a >>NO_ACK_ERROR-2.txt
)
干杯,G