質問: ### 前提・実現したいこと 環境:Windows10 コマンドプロンプト バッチファイルを作成するために勉強をしています。 処理内容としては、 1.バッチファイルのあるフォルダと同じフォルダ上の特定の命名規則のファイルをzip圧縮する 2.圧縮したファイルの元ファイルを削除する 3.ただし、更新日時が最大のものは圧縮しない お分かりかもしれませんが、直近のファイルは復元用に非圧縮で保持し、 過去ファイルは圧縮して保持したい、というものです。 ### 作成中のソースコード ``` %~d0 cd %~p0 for %%i in (*.acess) do ( rem ファイルの圧縮 zip %%~ni.zip %%i rem 元ファイルの削除 del /Q %%i ) ``` ### 困り事 3点ほど、教えていただきたいです。 1.3の実装コード 1と2に関しては出来ましたが、3が出来ません。 処理順を更新日の降順にすればよいだろうと思っていますが、 単純に、実現方法の情報に当たりません。 2.バッチファイルの作成に関する情報サイト バッチの作成で検索すると、あまり「まとめサイト」のようなものが無いのか、「キー入力を待つには~」「実行コマンドの出力方法は~」等、基本的なことでも1つ1サイトの様に調べている有様です。 クックブックのようなサイト/書籍が有りましたらお教えください。 3.バッチファイルの実装可能コマンドは... これはWindopwsのコマンドプロンプトで実行できるコマンドと全く同じなのでしょうか?
回答: > > 1.3の実装コード > > > for コマンドでこんな感じに ``` for /f "skip=1" %%a in ('dir /b/o-d *.access') do ( @echo %%a ) ``` 日付の新しい順に整列したファイルを skip で指定した個数飛ばして取り出せます > > 2.バッチファイルの作成に関する情報サイト > > > 単純に [ dos コマンド ] で検索してみましたか? 結構、まとめサイトありますよ [ dos コマンド やりたいこと ] の検索でだいたい欲しい情報にたどり着けます > > 3.バッチファイルの実装可能コマンドは... > > > バッチファイルはそもそも「一連の複数コマンドをひとまとめに実行する」ためのものなので、windowsコマンドプロンプト(cmd.exe)上で実行できることはなんでも書けたと思います それ以外には if や goto などの制御文も書けます