0

我将如何在 FOR 语句中完成以下任务?

我在 Windows PC 目录中有文件,我想通过作为文件名一部分的全部或部分日期时间戳来识别,即 -

CLIENT CODE / ID            DATETIME STAMP 
0000090000010009.CLIENTNAME.20121212140022.txt
0001090000010009.CLIENTNAME.20130916110025.txt
0001090000010009.CLIENTNAME.20130908150022.txt

我不必打开/读取文件。我只需要识别特定日期时间范围内的文件即可移动、删除或复制它们。

4

2 回答 2

1
for /f "tokens=1-4delims=." %%a in ('dir /b /a-d "*.clientname.*.*"') do (
    set "dts=%%c"
    setlocal enabledelayedexpansion
    set "yyyy=!dts:~0,4!"
    set "mm=!dts:~4,2!"
    set "dd=!dts:~6,2!"
    set "hh=!dts:~8,2!"
    set "min=!dts:~10,2!"
    set "sec=!dts:~12,2!"
    echo File: %%a.%%b.%%c.%%d date/time: !dd!/!mm!/!yyyy! -- !hh!:!min!:!sec!
    endlocal
)
于 2013-10-03T14:36:37.527 回答
0

您可以使用dir带有通配符的命令。所以说你想要0000090000010009.CLIENTNAME.20121212140022.txt你可以做的文件:

dir *20121212140022*

如果你想把它放在一个循环中,那么for /F就可以了:

for /F %x in ('dir *20121212140022* /b /a-d ') do del %x

于 2013-10-03T14:15:54.493 回答