- 締切済み
月末日のフォルダを自動作成したい
batファイルで以下のような処理をしたいのですが上手くいきません。 どなたかご存知でしたらご教授いただきたく・・・ --------------------------------------------------------------------- (1)フラグファイル名によってフォルダを自動生成する 例) (1)*_25.txtというファイルがあったら、当月25日のフォルダを作成する →c:\temp\20110425 (2) *_31.txtと言うファイルがあったら、前月末日のフォルダを作成する →c:\temp\20110331 (2)上記(1)で作成したフォルダの下にファイルの接頭子によってサブディレクトリを作成する 例) 01_*.txtというファイルがあったら →c:\temp\20110331\01 と作成したい ※上記をsetコマンドを用いて作成してみたのですが、 (1)-(2)の場合にどうしても上手く動きません。 以下、作成してみた駄文: set zyy=%date:~0,4% set zmm=%date:~5,2% rem set zmm=01 set zdd=%date:~8,2% rem Dフォルダにあるフラグファイルでフォルダを作成 if exist d:\temp\test01\*_05.txt set zfld=%zyy%%zmm%05 if exist d:\temp\test01\*_10.txt set zfld=%zyy%%zmm%10 if exist d:\temp\test01\*_15.txt set zfld=%zyy%%zmm%15 if exist d:\temp\test01\*_20.txt set zfld=%zyy%%zmm%20 if exist d:\temp\test01\*_25.txt set zfld=%zyy%%zmm%25 if exist d:\temp\test01\*_31.txt set/a zmm2=%zmm%-1 if exist d:\temp\test01\*_31.txt ( if %zmm2% equ 0 set zyy2=%zyy% ) if exist d:\temp\test01\*_31.txt ( if %zmm2% equ 0 set/a zyy2=%zyy2%-1 ) if exist d:\temp\test01\*_31.txt ( if %zmm2% equ 0 set zfld=%zyy2%1231 ) if exist d:\temp\test01\*_31.txt ( if %zmm2% equ 1 set zfld=%zyy%0131 ) 上記のような感じで、12ヶ月分記述(閏年対応はしない) その後、以下の構文を発行するとエラーとなってしまいます。 remファイル接頭子によって、サブディレクトリ作成 if exist d:\temp\test01\01*.txt md d:\temp\test01\%zfld%\01 ※ここで『サブディレクトリまたはファイル\01は既に存在します』とエラーになります。 (恐らく、set/aを使っているがため?) 大変お手数ですが、誰かお助け下さい。 以上よろしくお願い致します
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- jjon-com
- ベストアンサー率61% (1599/2592)
関連するQ&A
- iPhoneからMFC-J738DNへのプリントが失敗する問題について相談します。
- iOS 17.2.1で無線LAN接続した状態でプリントしようとすると、プリンターへの接続に失敗しています。
- お使いの環境はiPhoneのiOS 17.2.1で、無線LAN接続していて、電話回線はひかり回線です。
お礼
回答ありがとうございます。 なんとか(1)-(2)は突破しました。 ただ『20110331』と言うフォルダまでは作成されるのですが、 その下にサブディレクトリが作成できませんでした。 で、あれこれ試した結果、 『20110331』というような日付のディレクトリまでは作成できるので、 まずCDをかまして日付フォルダに移動してから、 サブディレクトリ作成を試みたところ上手く(2)まで動くようになりました。 大変ありがとうございました。