ディレクトリから最新のファイルをコピーする Windows バッチ スクリプトを作成するにはどうすればよいでしょうか? 質問する

ディレクトリから最新のファイルをコピーする Windows バッチ スクリプトを作成するにはどうすればよいでしょうか? 質問する

ディレクトリ内の最新のファイルを新しい場所にコピーする必要があります。これまでのところ、ファイル用コマンド、日付に関する質問ここともう一つ関連する質問. ピースをまとめるのに少し苦労しています。そのディレクトリ内の最新のファイルを新しい場所にコピーするにはどうすればいいですか?

ベストアンサー1

受け入れられた回答では、コマンドで最新のファイルを使用して終了する例が示されています。他の複雑な操作を含む bat ファイルでこれを実行する必要がある場合は、次のコードを使用して、最新のファイルのファイル名を変数に格納できます。

FOR /F "delims=" %%I IN ('DIR "*.*" /A-D /B /O:D') DO SET "NewestFile=%%I"

%NewestFile%これで、 bat ファイルの残りの部分全体を参照できるようになります。

たとえば、ディレクトリからデータベース .bak ファイルの最新バージョンを取得し、それをサーバーにコピーして、データベースを復元するには、次のようにします。

:Variables
SET DatabaseBackupPath=\\virtualserver1\Database Backups

echo.
echo Restore WebServer Database
FOR /F "delims=|" %%I IN ('DIR "%DatabaseBackupPath%\WebServer\*.bak" /B /O:D') DO SET NewestFile=%%I
copy "%DatabaseBackupPath%\WebServer\%NewestFile%" "D:\"

sqlcmd -U <username> -P <password> -d master -Q ^
"RESTORE DATABASE [ExampleDatabaseName] ^
FROM  DISK = N'D:\%NewestFile%' ^
WITH  FILE = 1,  ^
MOVE N'Example_CS' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Example.mdf',  ^
MOVE N'Example_CS_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Example_1.LDF',  ^
NOUNLOAD,  STATS = 10"

おすすめ記事