0

FOR ステートメントで次のことを行うにはどうすればよいですか?

ファイル名の一部である日時スタンプの全部または一部で識別したい Windows PC ディレクトリにファイルがあります。

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

ファイルを開いたり読んだりする必要はありません。MOVE、DELETE、または COPY するために、特定の日時範囲のファイルを特定する必要があるだけです。

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 に答える