2016-04-15 9 views
-2

こんにちは私は最新のファイル名でファイルを移動したい。最新のファイル名を.BATの別のフォルダに移動するには?

毎晩作成されるファイルがあります。

ファイル名は、このようなものです:

KOHe5_20160410.txt 
LU5_20160410.txt 
MOHe5_20160410.txt 

と私はちょうどその夜に作成されたものを移動したいです。

私が最初にこのコードを使用:

robocopy C:\SOURCE C:\OUTPUT KOHe5_*.txt /MOV /S /MAXAGE:1 

robocopy C:\SOURCE C:\OUTPUT LU5_*.txt /MOV /S /MAXAGE:1 

robocopy C:\SOURCE C:\OUTPUT MOHe5_*.txt /MOV /S /MAXAGE:1 

しかし、これはファイルで作成された日付を取っています。ファイル名の日付をとり、最新のものを取りたい。

どのようにすればいいですか?

+0

あなたがsame-を使用しています日付、または前の日付?バッチの 'date/t'コマンドは、現在の日付を文字列として返します。それを変数に 'SET'して、文字列スライシングを使ってYYYYMMDD形式で取得することができます。 –

+0

しかし、これは日付認識ではありません。あなたは 'date/t -minus 1d'などを行う方法がありません –

+0

どうすればいいですか?あなたは完全なコードを提供してください。ファイル名の日付に基づいて最新のファイルを別のフォルダに移動するだけです。 – Vargo

答えて

2

この名前でソートされたファイルを取得し、最後のいずれかを選択する方法である:

cd /d c:\source 
for /f "tokens=*" %%i in ('dir /b /on KOHe5_*.txt') do set last=%%i 

あなたがしてコピーすることができ、XCOPY、robocopyをまたは何%last%

copy %last% c:\destination\* 
+0

ありがとうございます。完全に新しいコードを完全に提供してください。 – Vargo

+0

ok thxはこれを今試してみる – Vargo

+0

それはうまくいった!私はちょうどファイルを移動し、コピーしない方法は? – Vargo

関連する問題