0

Webブラウザからファイルをダウンロードするプロセスがあります。常に同じ名前であるため(変更できません)、各ファイルはfile([latestnumber])としてダウンロードされます。

したがって、このディレクトリには次のものがあります。

joe.pdf
joe(1).pdf
joe(2).pdf
など。。。

ここで、「最新のファイル」(この場合はjoe(2).pdf)を取得して、別のディレクトリにコピーするスクリプトが必要です。

GetLatestFile( "joe")のようなもので、 "X:\mydirectory"にコピーします

誰もがこれを行う簡単な方法を考えることができますか?

4

4 に答える 4

2

スクリプトを書く言語について好みはありますか?

ファイルの名前ではなく、使用するスクリプト言語を選択し、ディレクトリをループして各ファイルのファイル属性を調べ、最新のファイルを選択してから、ファイルに移動します。ターゲットディレクトリ。これは、System.IO名前空間で使用可能なクラスを使用する.NETコンソールアプリケーションではかなり簡単です。(つまり、DirectoryInfo、FileInfo、およびFileクラス)

于 2010-07-07T16:10:05.713 に答える
1

これを試して:XCOPY C:\BATCH\*.* C:\UPLOAD /M

コードをテキストファイルに入れ、名前をwhateveryouwant.batに変更して、実行します。

ソースフォルダとデスティネーションフォルダをお好みに合わせて編集してください。

これはあなたが探しているものですか?

于 2010-07-07T16:17:33.043 に答える
1

したがって、最新のファイル名を日付でソートするだけで十分なので、次のようなものをお勧めします。

@echo off & setLocal enabledelayedexpansion

for /f "tokens=* delims= " %%a in ('dir /b/a-d/o-d') do (
set N=%%~Fa
goto :done
)
:done
echo !N!

「copy...」の最後のechoコマンド、または実行したいことを最新のファイルに置き換えます。

HTH!

編集>ファイルが現在のディレクトリにない場合は、それに応じて「dir」コマンドを変更します

于 2010-07-07T23:28:57.590 に答える
1

これはsedと正規表現を使用し ますhttp://gnuwin32.sourceforge.net/packages/sed.htm

それは仕事をするbatファイルを生成します。batファイルをc:\ crpに置いたので、最新のファイルにはなりません。

デモンストレーションとして、最新のファイルlatestfile.txtを作成しました

copyit.batを生成する行が表示され、ファイルが希望の場所に正確に移動するように修正できます。

C:> md c:\ crp

C:> copy / y conlatestfile.txt

fgfdgd ^ Z

1つのファイルがコピーされました。

C:> dir / od / ad / b | / N/V「QWERTY」を検索| 「[1]」を探す| sed -es / [1](。*)/ cop y \ d32 \ 1 \ d32c:\ newdir /> c:\ crp \ copyit.bat

C:>タイプc:\ crp \ copyit.bat

latestfile.txt c:\newdirをコピーします

于 2010-07-10T10:07:42.347 に答える