1

フォルダー内のすべてのファイルの名前を名前と作成日で変更するバッチ ファイルを作成しようとしています。たとえば、 >User file name を >User_13-06-2012 に変更します。私を助けてください。

名前に新しい日付を追加するだけのこのコードがあります。

@echo off
cd "C:\account folder"
for /f "tokens=1-3 delims=/" %%a in ('echo %date%') do set today=%%a%%b%%c
for %%f in (*.*) do ren "%%f" "%%~nf_%today%%%~xf"

今からありがとう。

4

1 に答える 1

1

編集済み:以前の回答は、作成時間ではなく変更時間を誤って表示していました。

これ

@echo off
for %%A in (*.*) do ( 
  for /f "skip=7" %%B  in ('dir /T:c "%%A"^|sort') do (
   for /f "tokens=1-3 delims=/" %%C in ("%%B") do echo %%~nA_%%C-%%D-%%E%%~xA
  )
)

要件に従ってフォーマットされたファイルの新しい名前を吐き出します。これから作業するのはかなり簡単です。

注:これは、日付の区切り記号が「/」であり、一般にロケールに依存することを前提としています

編集:上記の純粋なバッチソリューションは本質的に信頼できないため、以下は同等のpowershellワンライナーです-より高速で、ロケールに依存せず、変更が簡単です。ps が利用可能な場合は、代わりにこれを使用することをお勧めします。

get-childitem | ? {$_ -is [IO.FileInfo]} | foreach-object {$_.basename + "_" + (get-date ($_.CreationTime) -uformat "%d-%m-%Y") + $_.extension}
于 2012-07-25T14:41:14.970 に答える