• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バッチファイル作成で困っています)

バッチファイルでルートディレクトリの日付フォルダを指定してコピーする方法

このQ&Aのポイント
  • バッチファイルを使用して、特定の日付以降のフォルダを別の場所にコピーする方法について教えてください。
  • ルートディレクトリの直下には、複数のフォルダがあり、フォルダ名はyyyymmdd形式の日付です。
  • 引数として指定された日付以降のフォルダをすべて指定した場所にコピーするバッチファイルを作成したいです。for /dループを使用する必要があると思いますが、具体的な方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

確かバッチファイルは計算ができなかったはずですので WSHなどの別のスクリプトを使うことをお勧めします。

HOKKAPOKKA
質問者

補足

if xxx geq %1 (echo true) else (echo false) とかを使うと聞きかじりましたが...

その他の回答 (4)

  • UY-Scuti
  • ベストアンサー率85% (17/20)
回答No.5

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)
回答No.4

バッチファイルでは(dos形式?)無理かもしれませんが、powershellが実装されていると思いますので・・・・ 日付操作に関して参考になる所を紹介しておきます。 PowerShellの日付操作 https://qiita.com/ryosuke0825/items/06eae2e99f587b5275aa あとは、MOVEでもcopyでもxcopyでも目的に沿うコマンドを使用する場合のを探して組み込んでみては如何でしょうか? ご参考にどうぞ

回答No.3

再度回答します。 WSH(Windows scripting Host)はバッチファイルの代わりに開発された言語です。実際の言語はJavaScriptです。 コマンドプロンプトからWSH スクリプトファイル名 引数 という形で呼び出せるので可能です。 ですが、windows98から存在していたWSHもずいぶん古い実装です。資料とかも少ないかもしれません。組み方は忘れてしまいました。 今ならもっとスマートな実装があるかもしれませんね。 同様の呼び出し方でPHPを使うという選択肢もあります。 PHPといろんなライブラリをインストールして PHP スクリプトファイル名 引数 のような呼び出し方もできます。

回答No.2

再回答します。 たしかに比較で計算めいたことはできたかもしれませんが 今度はすでに作成されているフォルダ名を引数以外の方法で 取得する方法がなかったと思います。 WSHにはファイルシステムにアクセスするライブラリがあります。

HOKKAPOKKA
質問者

お礼

そうなんですか。ちなみにシステム上ではコマンドプロンプトしか使用を許されていないのですが、WSHというのはそれでも使えるのでしょうか。そしてWSHだとどういう記述になるのでしょうか。

関連するQ&A