- ベストアンサー
バッチファイルでルートディレクトリの日付フォルダを指定してコピーする方法
- バッチファイルを使用して、特定の日付以降のフォルダを別の場所にコピーする方法について教えてください。
- ルートディレクトリの直下には、複数のフォルダがあり、フォルダ名はyyyymmdd形式の日付です。
- 引数として指定された日付以降のフォルダをすべて指定した場所にコピーするバッチファイルを作成したいです。for /dループを使用する必要があると思いますが、具体的な方法を教えてください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
確かバッチファイルは計算ができなかったはずですので WSHなどの別のスクリプトを使うことをお勧めします。
その他の回答 (4)
- UY-Scuti
- ベストアンサー率85% (17/20)
pushd C:\ for /f "delims=" %%i in ('dir /b /ad ^| findstr /r "[1-2][0-9][0-9][0-9][0-1][0-9][0-9][0-9]$"') do ( if "%%~nxi" geq "%~1" ( xcopy /e "%%i" "C:\Work\%%~nxi\" ) ) popd
- JP002086
- ベストアンサー率34% (1535/4403)
バッチファイルでは(dos形式?)無理かもしれませんが、powershellが実装されていると思いますので・・・・ 日付操作に関して参考になる所を紹介しておきます。 PowerShellの日付操作 https://qiita.com/ryosuke0825/items/06eae2e99f587b5275aa あとは、MOVEでもcopyでもxcopyでも目的に沿うコマンドを使用する場合のを探して組み込んでみては如何でしょうか? ご参考にどうぞ
- tomo-tomo3579
- ベストアンサー率32% (65/199)
再度回答します。 WSH(Windows scripting Host)はバッチファイルの代わりに開発された言語です。実際の言語はJavaScriptです。 コマンドプロンプトからWSH スクリプトファイル名 引数 という形で呼び出せるので可能です。 ですが、windows98から存在していたWSHもずいぶん古い実装です。資料とかも少ないかもしれません。組み方は忘れてしまいました。 今ならもっとスマートな実装があるかもしれませんね。 同様の呼び出し方でPHPを使うという選択肢もあります。 PHPといろんなライブラリをインストールして PHP スクリプトファイル名 引数 のような呼び出し方もできます。
- tomo-tomo3579
- ベストアンサー率32% (65/199)
再回答します。 たしかに比較で計算めいたことはできたかもしれませんが 今度はすでに作成されているフォルダ名を引数以外の方法で 取得する方法がなかったと思います。 WSHにはファイルシステムにアクセスするライブラリがあります。
お礼
そうなんですか。ちなみにシステム上ではコマンドプロンプトしか使用を許されていないのですが、WSHというのはそれでも使えるのでしょうか。そしてWSHだとどういう記述になるのでしょうか。
補足
if xxx geq %1 (echo true) else (echo false) とかを使うと聞きかじりましたが...