答えて
dir /B /OD /TW file*.txt
は、最後に書き込まれた時間のソート順でファイル名をリストします(cf. dir /?
)。
@echo OFF
SETLOCAL EnableExtensions
rem delete empty `_lastfile` variable
set "_lastfile="
rem store file name of last written time into `_lastfile` variable
for /F "delims=" %%G in ('dir /B /OD /TW file*.txt 2^>NUL') do set "_lastfile=%%~G"
rem ↑↑↑↑↑↑ suppress errors
rem check the `_lastfile` variable
rem is defined?
rem AND is different from "file.txt"?
if defined _lastfile if /I "%_lastfile%" NEQ "file.txt" copy /Y "%_lastfile%" "file.txt"
資源(必読):
- (コマンドリファレンス)An A-Z Index of the Windows CMD command line
- (追加の特殊性)Windows CMD Shell Command Line Syntax
- (
%~G
など特記事項)Command Line arguments (Parameters) - (
2>NUL
など特別ページ)は、コードとして試みたのは何
次は、バッチスクリプトがあなたのために仕事をすることができ、コメント
大変ありがとうございました –
確かに私の答えよりも、よくできました:) –
ここではちょっとした解答です。このスクリプトは、現在のファイル(10)にあったテキストが含まれているだけではfile.txtを残し、file.txtにfile (10).txt
までfile (1).txt
からすべてのファイルを移動します
は昇順でそれをやって
を.txtに保証されます存在する最も高い番号は最後に移動される番号です。
@echo off
set /P name=Enter name of file without extension:
echo enter extension:
set /P ext=.
echo. & echo.
echo these actions will be performed: & echo.
FOR /L %%A IN (1,1,10) DO @echo move /y "%name% (%%A).%ext%" "%name%.%ext%"
echo. & pause & echo.
FOR /L %%A IN (1,1,10) DO move /y "%name% (%%A).%ext%" "%name%.%ext%"
pause
あなたは存在しないファイルを移動しようとしてからスクリプトを停止するにはIF EXIST %name% (%%A).%ext%
を使用することができますが、それは本当にそれを行うには何も影響を与えませんので、私は気にしませんでした。
上記のスクリプトは、特定の名前付きファイルに対して実行します。ことが可能となりますディレクトリ内のすべてのファイルのためにそれを行うには、ここにあなたがテキストファイルに記載されているディレクトリ内のすべてのファイルを取得するためにdir /b >filenames.txt
を使用
を軌道に乗るためにいくつかのヒントがある
すべてのためのアクションを実行するにはテキストファイルの行
for /f "usebackq delims= tokens=* %%a in (`filenames.txt`)" DO (
::some stuff here
)
を行い、私はそれに行くかの方法は、あなただけの「非重複」ファイル名のリストを持っているように、すべての(n)のファイルを削除し、手動で、filenames.txtを取得することです、これを入力として使用します。あなた
おそらくより洗練されたソリューションがあるかもしれませんが、バッチのすべての特質をもって、私はそれらがページとページであることに驚かないでしょう。
あなたは、私はあなたがすべての元のファイルを保存したい場合はCOPY
を使用したい、ちょうどコピーなしで最終file.txtなどで終わるすべてではない元のファイルを保持したい場合は、 COPY NOT MOVEを使用したいと考えています。ループのためのそのような場合には
、すべての余分な操作(すなわち唯一のために、すべてのファイルをコピーし、最も大きい番号のファイルをコピーではありません)あなたの(今複数行)内のIF NOT EXIST %name% (!B!).%ext%
どこ!B!=%%A+1
のようなものを除去し、上へSETLOCAL EnableDelayedExpansionを使用算術演算を適切に行う。しかし、実際には必要ありません。1、2、3をコピーしてください。次に、1と2をスキップして4をスキップするより少し遅い場合は4が同じことをします。
これは、これが明確でない場合は、質問をしてください。
- 1. 正規表現は、私はファイルのリストを持っている名前
- 2. PHP:私は(配列内の)ファイルのリストを持っているファイル名
- 3. 私はこの種の名前のファイルを持っている前の行に
- 4. R - 私は名前のベクトルの名前付きリスト持って
- 5. は自動的に私はファイル名で動画ファイルを持っているビデオファイルのバッチスクリプト
- 6. 私はtest7.tclという名前のファイルが持っているのTcl
- 7. 私のバッチスクリプトは、ファイル名、ディレクトリ名エラー
- 8. 私は名前の本のリストを持っている
- 9. ランダムな名前のファイルの名前を変更するWindowsバッチスクリプト?
- 10. 私はファイルとこの名前のファイルの例を持ってCMD
- 11. 数値は、私は、フォーム内のファイル名のリストを持っているパターン
- 12. は、私はこのような名前のリストを持っているリスト
- 13. AppleScriptを - 私は名前のフォルダ内のファイルの何千も持っているファイル名
- 14. サブセット私は、ファイルの最初のリストを持っている
- 15. bashの〜私は、ファイルのリストを持っている
- 16. R - 私は名前付きデータフレームのリストを持って対応する名前
- 17. 名前の変更は、順次、私はこれらのファイルを持っている名前
- 18. Pythonはファイルを読んで、私は名前のファイル持っている(/パッチ/に)いくつかのディレクトリでライン
- 19. 私はこのようなファイルを持っているリストに
- 20. Splunkは:私は2つのCSVファイル持っているリスト
- 21. アクセスは、私がリストをドロップダウン3持っていた.aspxファイル持って
- 22. Pythonの:私はサンプルのファイル名のファイルを持っているファイルをチェックして、新しいファイル
- 23. SQL:出力重複した名前が、私は次の表を持っている最新のAPPT日
- 24. は私がテーブルを持っている別の重複行
- 25. ファイル名の一部に基づいてファイルをマージし、私はフォーマットの名前で(下のサンプル名)フォルダ内の約450 CSVファイルを持っている
- 26. 私は複数の(ユーザー名、パスワード)を持つ.txtファイルを持っている辞書のpythonのユーザ名・パスワード
- 27. が、私は2つのテーブルを持っていない、重複
- 28. 私は2つのファイルを持って見つけて、テキストファイルの名前
- 29. は、私が「SAMPLE.TXT」という名前のファイルを持っているし、次の内容が含まのPython
- 30. バッチスクリプトを使用して動的ファイルの名前を変更
Redirection? – Hackoo
私はそれをどうするか分かりません。私は今、どのようにループのために使用する場合、条件、変数を設定しますが、私は多くの経験がありません。 Miの最初のアイデアはforループを実行し、 "file(%i).tex"が存在するかどうかをテストすることです。しかし、私はどのように進行するかわからない... –
私はあなたのポストで質問を見つけることができません。タイトルはあなたが何かを削除したいと言っていますが、 "質問"本文には何を削除するか記載されていません。ですから、明確にしてください!最大番号のファイルにも最新の作成日または変更日がありますか?あなたがこれまでに試したことと何が問題になっているかを分かち合いましょう! StackOverflowは無料でスクリプトを要求する場所ではありません!これを読んでください:[ask] – aschipfl