• ベストアンサー

フォルダーの自動生成

Windowsで、毎月1日になったら特定フォルダー内に前月の「年月」名フォルダーを自動的に作成することは、VBSやタスクスケジュールなどを組み合わせて可能でしょうか?。 例えば、20年8月1日になったら、Cドライブの「test01」フォルダーと「test02」フォルダー内に「2007」フォルダーを作成したいのですが。 \C\test01\2007  \C\test02\2007 よろしくお願いいたします。

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

  • ベストアンサー
  • argument
  • ベストアンサー率63% (21/33)
回答No.4

みなVBSで難しく考えているようですがbatで十分でしょう。 [1日の時先月フォルダ作るよー.bat] echo off rem もしも1日ならば処理をするそうでない場合終了する if %date:~-2,2%==01 goto mkdirsystem exit :mkdirsystem rem 現在の年を確定(和暦)。西暦にしたい場合は「set y=%date:~-10,4%」とする。 set /a y=%date:~-10,4%-1988 rem 現在の月を確定 set m=%date:~-5,2% rem もしも1月だったら112、そうでない場合月の頭に1をつけ1引く(8進数対策) if %m%==01 (set m=112) else (set /a m=1%m%-1) rem 先月を確定する(末尾2桁のみを取得する) set m=%m:~-2% rem 去年を確定する(もしも12月だったら年を1引く) if %m%==12 set /a y=%y%-1 rem 指定のディレクトリにフォルダを作る mkdir \C\test01\%y%%m% mkdir \C\test02\%y%%m% exit とすればよいです。 スケジュールで月ごとに実行するよう登録するのがいいと思いますが 仮に間一日実行としても最初のチェックで1日時しか作成しません。 どうしてもVBSが良いなら [1日の時先月フォルダ作るよー.vbs] if split(date,"/")(2)=01 then Set fso = CreateObject("Scripting.FileSystemObject") fso.CreateFolder ("\C\test01\" & split(date-1,"/")(0)-1988 & split(date-1,"/")(1)) fso.CreateFolder ("\C\test02\" & split(date-1,"/")(0)-1988 & split(date-1,"/")(1)) end if 私ならこんな感じに組むかな?VBSはdate型が有るのでまぁ楽チンちゃ楽チンですけどオブジェクト定義とかVBSしらない人に説明するのがめんどうなので・・・。 あと西暦にしたい場合は-1988を消しせばOKです。 どっちも動作確認したので動くと思います。 あと仮パスなのでどうでもいいことですけど\C\ではなくc:\とかでテストください。そのままでは実行できません。 追加条件・補足等がほしければ言ってください。

ogaki_3ok
質問者

お礼

遅くなり申し訳ありませんでした。 貴殿と他の方のアドバイスにより何とかできそうです。 ありがとうございました

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • rooksan
  • ベストアンサー率66% (4/6)
回答No.3

西暦、和暦関係なくやるとこんな感じ Option Explicit Dim nDate Dim f Dim zYm '現在の日付の取得 nDate = Now() '日付のチェック 今日は 8/1? ->年まで対象にするならYear関数を追加 If Month(nDate) = 8 And Day(nDate) = 1 Then '対象日の場合 Set f = CreateObject("Scripting.FileSystemObject") '前月の作成 今日が2008/08/01 なら 200807がzYmに返る nDate = DateAdd("m", -1, nDate) zYm = CStr(Year(nDate)) & myFormat(Month(nDate),2) 'チェック対象のフォルダー ' 今日が2008/08/01 なら引数はc:\test01\200807 checkDir "c:\test01\" & zYm ' 今日が2008/08/01 なら引数はc:\test02\200807 checkDir "c:\test02\" & zYm End If 'フォルダーチェック Sub checkDir(folderName) '存在チェック 存在していたら何もしない If f.FolderExists(folderName) Then Exit Sub End If 'フォルダーの作成  f.CreateFolder (folderName) End Sub '数値のフォーマト関数 ' VBSには詳しくないので・・・Format関数てなかった? Function myFormat(s, n) Dim ss ss = CStr(s) While (Len(ss) < n) ss = "0" + ss Wend myFormat = ss End Function

ogaki_3ok
質問者

お礼

遅くなり申し訳ありませんでした。 貴殿と他の方のアドバイスにより何とかできそうです。 ありがとうございました

全文を見る
すると、全ての回答が全文表示されます。
  • shut0325
  • ベストアンサー率40% (490/1207)
回答No.2

おそらく可能です。ただ、2007の表記は西暦と勘違いそうしな気が。 年号変わったらめんどうだし。 一応VBS側のサンプル載せます。エラー処理なし。 タスクは使ったことがないので、何らかの理由で処理もれしたりするかもしれませんが、その辺の対策もしてません。 '開始 Option Explicit Dim fSys Dim fName Dim nDate Set fSys = CreateObject("Scripting.FileSystemObject") '今月1日-1=先月末日 先月=去年の時の対応。 nDate=CDate((Year(Date) & "/" & Month(Date) & "/" & 1))-1 ' -1988は年号変換  fName= CStr(Right("00" & Year(nDate)-1988,2) & Right("00" &Month(nDate),2)) fSys.CreateFolder "C:\test01\" & fName fSys.CreateFolder "C:\test02\" & fName '終了

ogaki_3ok
質問者

お礼

遅くなり申し訳ありませんでした。 貴殿と他の方のアドバイスにより何とかできそうです。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • violet430
  • ベストアンサー率36% (27472/75001)
回答No.1

可能だと思いますよ。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • マクロでフォルダを検索し、フォルダ内のブックを参照したい。

    エクセルでお願いします。 (1)と(2)のフォルダがあるとします。 (1)フォルダには年間のスケジュールを。 (2)フォルダにはスケジュールの内容を入れます(bookで)。 スケジュール表の特定の場所をクリックしたとき (例えば2月1日の部分)、 Bフォルダを開き、指定したbook (例えば2月1日のスケジュールを記載した)を開く。 こんなマクロを作成できますか?

  • バッチファイルについて

    こんにちは。 今回はバッチファイルについてよろしくお願いいたします。まったくの初心者なので記述例などあるととても嬉しいです。 例えば C:\ABCフォルダに毎日AAAA/BB/CCのファイルが作成されます。 これを毎月1日に前月の分(AAAA/BB/01~AAAA/BB/31など)を別ドライブにAAAA.BBというフォルダを作成した上で、その中に放り混むようなものは作成可能なのでしょうか? 毎月1日に、前月分のファイルをまとめて他のドライブに新規作成したフォルダへ移動する、というイメージです。 お分かりになる方、よろしくお願いいたします。

  • コマンドプロンプトでのフォルダ操作(作成・削除)

    コマンドプロンプト初心者です。 毎月1日にタスクに設定したバッチを実行して、 フォルダの新規作成と古いフォルダの削除をしたいのですが、 処理をどのように考えたら良いか分かりません。 あるフォルダに 2011年7月,2011年8月,2011年9月という処理の対象のフォルダと その他にいくつかフォルダがあります。 処理の内容としては、 10月1日になったら「2011年10月」というフォルダを作成し 3ヵ月前に作成された「2011年7月」フォルダを削除 いろいろ調べているのですが、 コマンドプロンプトだけで出来るのかどうかも分かりません。 どなたかアドバイスお願いします。

  • フォルダを自動で開く

    フォルダを自動で開く 教えて下さい。 javascriptを使って、自動で指定のURLへ飛ぶというような事をした事がありますが、 自動で指定のフォルダが開くというようなjavascriptはありますでしょうか? *指定のフォルダとは、エクスプローラーにて自分のCドライブ、あるいはネットワーク上 に存在する共有フォルダを開くなど。。 よろしくお願いします。

  • Accessでフォルダを自動生成する方法について

    http://www.accessclub.jp/supbeg/091.htmlを参考に、 任意のパスを入力し、フォルダを作成するプログラムを作成いたしました。 そうしました所、存在していないフォルダの中にフォルダを作ることが出来ませんでした (例えば c:\aaa\bbb と指定した場合、aaa フォルダが存在する場合は bbb フォルダが作成されますが、 aaa フォルダが存在しない場合、bbb フォルダが作成されませんでした)。 上記のような場合、aaa フォルダが存在しなければ、自動的に aaa フォルダを作成し、 その中に bbb フォルダを作成したいと思いましたが、良い手が思いつきませんでした。 その為、何か良い手をご存知の方がいらっしゃいましたら、アドバイスをいただければと思います。 よろしくお願いします。

  • バッチファイルの作成

    今回はバッチファイルの作成についてよろしくお願いいたします。 自分の端末のAというフォルダに毎月ファイルが作成されます。これをネットーワーク上の違う端末の特定のフォルダーにコピーしたいのです。 Aというフォルダにyyyymmというファイルが毎月できます。 これを翌月になったら\\MR\test の中にコピーする、という事で、例えば 2006年5月には Aのフォルダにある200604というファイルをネットワーク上の\\MR\testにコピーという事です。 毎月決まった日に動作させたいのですがそれはタスクに入れればいいかな、と考えています。 すみませんが、よろしくお願いいたします。

  • フォルダを自動作成するばっちについて

    初めての投稿になります。 OKWaveで過去の記事を参考に、フォルダを自動作成するバッチを 作ったのですが、 同名ファイルを作ろうとすると、エラーも何も表示されませんが、 スルーされてしまうみたいで、フォルダ自体も作成されず、上書きもされません。 同じファイルに自動で連番を付けるなどの回避策など何かありませんでしょうか。 例、テスト   テスト01   テスト02       etc等 バッチ内容が以下になります。 set /p USER_INPUT=フォルダ名を入れてください。: mkdir "%USER_INPUT%" ご教授よろしくお願いいたします。

  • Outlookでフォルダ作成

    Outlook2010を使用しています。 受信年月ごとに振り分けるマクロを作成しましたが、あくまでも既存フォルダへの振り分けしか対応していません。 新しい年月(例えば毎月1日とか年が変わったとか)の受信メールに対応するべくフォルダの自動作成を考えているのですが、サンプルとなるようなソースも見つからずどうしたものかと悩んでいます。 Outlookのマクロでフォルダ作成は実現できるものなのでしょうか? できるのであればソースの例、もしくはサイト等を教えていただけないでしょうか。 よろしくお願いいたします。 なお、受信トレイと同階層にある振り分け用フォルダ内に年月のフォルダを作成したいです。

  • 日付のフォルダを自動で作成したい。

    特定のフォルダ内のデータを、日付のフォルダ(20030101)に自動で入れたいのですが、具体的な方法がわかりません。だれかお力添えをお願い致します。 自動で行いたい部分:  1.日付のフォルダを作成する。(20030203)  2.フォルダAのデータを1で作成したフォルダにコピーする。 環境:  OS : Windows2000

  • ファイルをフォルダに自動振り分け バッチファイル

    Cドライブ直下の"A"フォルダにある1,000件のCSVファイルをCドライブ直下に作成した5つのフォルダ"1~5"に自動振り分けしたいと思っています。 振り分け条件はExcelで管理しており、CSVのファイル名(1,000件分)と振り分け先のフォルダ名(1,000件それぞれ1~5のフォルダ)を入力してあります。 バッチファイルでMOVEを利用して自動振り分けできないか…と考えていますが、上手く行きません。 どなたか教えていただけないでしょうか。宜しくお願いします。

母が離婚すると言い出しました
このQ&Aのポイント
  • 高2です。父が単身赴任中のため小学生の妹と中学生の弟と私と母の4人で暮らしています。
  • 弟がルールを破って夜遅くまでゲームをしていたことがきっかけで、母が爆発してしまいました。
  • 父がギャンブル依存で借金を負って出稼ぎに行っており、母は一人で頑張ってきたが、自分たちも母を頼りきりにしてしまったことを aut くらい悪いと思っています。
回答を見る

専門家に質問してみよう