路径改变中的1个角色......如何处理?

时间:2014-08-15 16:12:23

标签: variables batch-file

我有一条路:     \%VARIABLE%svr0001 \ E $ \用户\%VARIABLE%POS00 ?? \ E2ELOGS * .DBG

唯一改变的字符是' ??' (%VARIABLE%POS00 ??)。

  • 值可以是01到15(01,02,03,04,05,06,07,08,09,10,11,12,13,14,15)

如果不为每个可能的更改值创建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
)

2 个答案:

答案 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