0

次の数行は、フォルダー内の特定のファイルの名前、区切り文字、およびタイムスタンプを出力します。

for /f "eol=: delims=" %%F in (
  'dir /b /a-d /one *.txt *.pdf *.doc* *.xls* *.msg 2^>nul'
) do echo %indent%%fileBullet% %%F%delimeter% %%~tF

だから、このようなものを生成します

Response.docx; 02/07/2013 12:13 PM

タイムスタンプの時間部分(つまり日付のみ)を削除し、その後にファイルが何日経過しているかを削除したいと思います。それで

Response.docx; 02/07/2013; 14

私は、ダースほどの行を含むかなり長いソリューションをオンラインで見つけました。短くて甘いアプローチはありますか?

4

1 に答える 1

1

これはもっと短くて甘いものです。短くて甘いものではありませんが、少なくとも12行のコードではありません。:)

for /f "eol=: delims=" %%F in (
  'dir /b /a-d /one *.txt *.pdf *.doc* *.xls* *.msg 2^>nul'
) do call :datediff "%indent%%fileBullet% %%F%delimeter%" %%~tF

goto :EOF

:datediff
echo wscript.echo DateDiff^("d", "%2", Date^(^)^)>"%temp%\dd.vbs"
set /P i="%~1 %2%delimeter% "<NUL
cscript /nologo "%temp%\dd.vbs"
del /q "%temp%\dd.vbs"
于 2013-02-21T19:41:06.420 に答える