2つのディレクトリがあるとしますN:\test1 and N:\archive
。
.csvファイルをtest1からアーカイブに移動したい。
ファイルが上書きされているので、ファイルをアーカイブしたいので、タイムスタンプを追加することを考えました。
私はこれまでこのようなロジックに従っていますが、ファイル名にタイムスタンプを追加する方法がわかりません。
REM TimeStamp
for /f "tokens=2-8 delims=.:/ " %%a in ("%date% %time%") do set DateNtime=%%c-%%a-%%b_%%d%%e%%f
REM move the file
move /Y N:\test1\*.csv N:\archive
REM Rename the file with timestamp
ren N:\archive\*.csv *_%DateNtime%.csv
これは私が立ち往生している部分です: ren N:\archive\*.csv *_%DateNtime%.csv
ご想像のとおり、最初から既存の.csvアーカイブファイルが存在するので、移動したばかりのファイルの名前を変更するように指示するにはどうすればよいですか?
たとえば、test1フォルダーにfile1.csvがあるとします。アーカイブに移動した後、名前をに変更する必要がありますfile1_%DateNtime%.csv
。
注:N:\はUNC /マウントされた共有ドライブです
これが私たちがそれをやった方法です:
SET today=%DATE:~10,4%%DATE:~4,2%%DATE:~7,2%%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%%TIME:~9,2%
SET today=%today: =0%
REM the second SET today was required because there was some weird execution with the
REM timestamp happening at 8:00 am. something wrong with the formatting so the files were
REM never getting timestamped at that time, but by adding that line the issue was resolved.
copy /y N:\test1\file1.csv N:\archive\file1_%today%.csv
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加