シナリオを見つけるために:私たちは、製品の複数のリリースを持っている 、および各リリースのために、フォルダがメインフォルダに作成されます。ヘルプファイルは、さまざまなリリースで変更されています。私はすべてのヘルプファイル名をテキストファイルにリストアップしています。バッチスクリプトはテキストファイルからファイル名を選択し、最新のファイル
- filenames.txtファイルから各ファイル名を取る
- ディレクトリ全体でその名前のファイルを検索する(すべてのリリースで)
- 最新のファイル を探す:私はへのスクリプトが必要
- は、このコードを取得するために私はスタックオーバーフローで見つけたコードのさまざまな部分からの助けを取っ指定したフォルダ
にそれをコピーして、それらを組み合わせた:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
echo.
FOR /F "usebackq delims=" %%a in ("filenames.txt") do (
SET "x=%%a"
ECHO '!x!'
SET FFPath=C:\SVN\nlbavwdocsvn\rep_doc_erpln\trunk\ERPLN
SET NewPath=C:\Lavanya\extracted
SET NewestDate=20160824
ECHO Recursively searching %FFPath%
FOR /F %%I in ('DIR %FFPath%\ !x! /a:-d /s /b') DO (
SET FullDate=%%~tI
ECHO %FFPath%
REM Set CurrDate to yyyymmdd format. Note: Will fail if regional settings changed.
SET CurrDate=!FullDate:~6,4!!FullDate:~0,2!!FullDate:~3,2!
If !CurrDate! gtr !NewestDate! (
SET NewestDate=!CurrDate!
SET NewestFile=%%~fI)
ECHO Copying %NewestFile% to %NewPath%
ECHO.
COPY /Y "%NewestFile%" "%NewPath%"
ECHO.
)
)
PAUSE
このコードは動作しません。そして、私はエラーを理解することができません。
あなたは 'DIR%FFPath%\ xを交換しなければならない' 'DIRと'!! "%FFPath%\ X!"。 'dir'はスペースで区切られた複数のマスクを検索します(例:' dir * .txt * .jpg'はすべての* .txtファイルとすべての* .jpgファイルを表示します) – Stephan
_all_に設定された変数_ループ内で読んでください!そして、単に 'dir'を日付('/o:d')でソートさせるのはなぜですか... – aschipfl
@Stephanあなたが提案した変更を試みましたが、期待通りの結果を得られませんでした。解決策を見つける他の方法はありますか?クエリを調べる時間をとってくれてありがとう! – Lavanya