1

我有一个看起来像这样的记事本。

Job Name                                                         Last Start           Last End             ST Run/Ntry Pri/Xit
________________________________________________________________ ____________________ ____________________ __ ________ _______
DEV_xxx_xxx_xxx_xxxx_b                                           11/20/2012  22:05:00 -----                RU 9229277/1

这个值“22:05:00”出现在第 3 行的第 77 列。有没有办法使用批处理脚本,我可以只提取这个值并将其分配给一个变量。上面的记事本是 autosys 命令的重定向输出(如果有帮助)

在过去的 3 天里,我一直在打破我的头,但无济于事。

4

3 回答 3

2

阅读第 3 行的另一种方式(更快)。

@echo off
<file.txt (
  set/p=
  set/p=
  set /p var=
)
set "var=%var:~76,8%"

如果要跳过更多行,请使用 FOR /L 循环

@echo off
<file.txt (
  for /l %%N in (1 1 2) do set/p=
  set /p var=
)
set "var=%var:~76,8%"

如果作业名称从不包含空格,那么看起来您也可以以传统方式使用 FOR /F。

@echo off
for /f "skip=2 tokens=3" %%A in (file.txt) do set "var=%%A" & goto :break
:break
于 2013-05-28T13:28:38.223 回答
2

未经测试

@echo off
for /f "skip=2 delims=" %%a in (file.txt) do set "var=%%a"&goto :done
:done
set "var=%var:~76,8%"
echo "%var%"
pause
于 2013-05-28T12:52:29.900 回答
1

用 GNU sed搜索它(非常快!)

for /f %%i in ('sed -n "/DEV/ {s/.*\([0-2][0-4]:[0-5][0-9]:[0-5][0-9]\).*/\1/p;q}" file.txt') do set "var=%%i"
echo %var%
于 2013-05-28T13:44:18.950 回答