我有一个疑问:
我想使用批处理在文件中查找一些日期。
我有以下代码:
SETLOCAL ENABLEDELAYEDEXPANSION
for /F "tokens=*" %%a in (%path%\%file%) do (
echo %%a | findstr /I "Date:"
)
ECHO.
PAUSE
PAUSE
使用此代码,我能够获取文件中出现的第一个日期,但随后脚本完成,我想获取文件内容中出现的所有日期,而不仅仅是一个。
我是否需要修改 for 结构或使用其他命令(而不是 findstr)?
谢谢!
如果您不需要在变量中使用日期而只想输出它们,那么只需在 cli 中执行此操作
TYPE "%path%\%file%" | FIND /I "Date:"
如果您需要找到每个日期,然后使用临时变量对其执行其他操作(并假设日期行中只有一个
:
,并且日期后面没有其他内容,您可以在 中执行此操作cmd
脚本
@(SETLOCAL
ECHO OFF
)
CALL :Main
( ENDLOCAL
EXIT /b )
:Main
For /F "Tokens=1* delims=:" %%A IN (`
TYPE "%path%\%file%" | FIND /I "Date:"
') DO (
REM if you need all the characters after "Date:" we can simply use this next line:
SET "Date_Tmp_Full=%%~B"
REM. If there may be whitespace around the value after "Date:" we can use the following method instead to trim it instead.
For /F "tokens=*" %%_ IN ('echo %%~B') DO (
SET "Date_Tmp=%%~_" )
REM Your other code can go here, or you can call a function to do more instead.
REM
REM
)