毎日、日記をPCのテキストに書いています。

09年というフォルダがあり8月というフォルダがあり
その中に18日(火)とかそういう.txtのファイルが31個入っています。
ずっとこの形式でやってきて自分的にとても使いやすいです。
しかし、日々の一個一個の.txtファイルを作るのが面倒です。
1年分とかを一気に作る方法はないでしょうか?
よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/08/18 22:16:24
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:SALINGER No.1

回答回数3454ベストアンサー獲得回数969

ポイント35pt

VBScriptでの方法です。

以下のコードをテキストファイルにコピーして、拡張子をvbsに変更してクリックして実行していみてください。

同じ場所に、2009年のテキストファイルを1年分作ります。

Option Explicit

Dim objFileSys
Dim strScriptPath
Dim strCreatePath
Dim strYear
Dim strMonth
Dim strDay
Dim strWeek
Dim i
Dim strDate

strDate = "2009/1/1"
strYear = Year(strDate)

Set objFileSys = CreateObject("Scripting.FileSystemObject")

strScriptPath = Replace(WScript.ScriptFullName,WScript.ScriptName,"")

strCreatePath = objFileSys.BuildPath(strScriptPath,strYear)
objFileSys.CreateFolder strCreatePath

For i = 1 to 12
	strCreatePath = objFileSys.BuildPath(strScriptPath & "\" & strYear,i & "月")
	objFileSys.CreateFolder strCreatePath
Next

For i = 0 to 364
	strYear = Year(DateValue(strDate) + i)
	strMonth = Month(DateValue(strDate) + i)
	strDay = Day(DateValue(strDate) + i)
	Select Case WeekDay(DateValue(strDate) + i)
		Case 1
			strWeek = "月"
		Case 2
			strWeek = "火"
		Case 3
			strWeek = "水"
		Case 4
			strWeek = "木"
		Case 5
			strWeek = "金"
		Case 6
			strWeek = "土"
		Case 7
			strWeek = "日"
	End Select
	strCreatePath = objFileSys.BuildPath(strScriptPath & "\" & strYear _
		& "\" & strMonth & "月",strDay & "日(" & strWeek & ").txt")
	objFileSys.CreateTextFile strCreatePath
	
Next
Set objFileSys = Nothing
id:huruta

ありがとうございます!

うまくいきました。

2009/08/18 22:16:10
id:kimudon No.2

回答回数1912ベストアンサー獲得回数171

ポイント35pt

http://www.kisnet.or.jp/nappa/software/renamecopytool/renamecopy...

http://www.kisnet.or.jp/nappa/software/winsoft.htm

http://www.kisnet.or.jp/nappa/download/renamecopytool.lzh


RenameCopyTool は如何でしょうか?

使い方

1.任意の場所にフォルダーを作成 例.8月

2.フォルダー内に「新しいテキスト」を作成

3.RenameCopyTool を起動

4.「Drag your file here」に2で作成したファイルをドラッグ

5.「after」内を「日」に変更

6.「Optional Text」の「Number」を「1►31」に変更

7.「Done」をクリック

8.「Position」を「OptionalText+FileName」に変更

9.「Create」をクリック


8月フォルダー内に1日~31日のテキストファイルが作成されます。

id:huruta

ありがとうございます。試して見ます。

2009/08/18 22:16:21
id:blueberry77 No.3

回答回数122ベストアンサー獲得回数7

ポイント10pt

すみません、失礼なことを言うようですが、

たぶん、初心者ではないかと・・・。

なので、記載されている方法はさっぱりわからないのではないかな、とも思ったのですが。

 

初心者なら・・・

まず、1~31までのファイルをつくる

中身はからにする

そのあとそのフォルダごと、右クリックでコピーして

あいているスペースではりつけ

そうすると、31個のテキストが入ったフォルダができます

これを12個つくったら月をかえる

 

次に、中のファイルを開き、テキストの数を28~31個に調整

次に、曜日をいれます。

(月)という文字をコピーして該当する日付の名前を一回クリックして1秒ほどおいてからもう一度クリックすると名前変更が簡単にできるので、そこで、貼り付ける。

月曜日ばかり作成し、次に火曜日というふうにやります。

 

もし、ソフトがあるようでしたら、名前を一括で変換してくれたりします

その場合、[.txt]->[(月).txt]とかえます。

複数ファイル選択可能なので、一か月分がまとめて変更できます。

それか、1日が月曜で始まっている月は、最初に曜日をいれてしまいそのフォルダをコピーして作成、という方法もあります。

id:chingryu No.4

回答回数30ベストアンサー獲得回数4

ポイント10pt

もしかしてハズした事を投稿しようとしてるのかもしれませんが、

ご希望の事ができるシェアウェアで 紙copi というソフトがあります。

この紙copiには、紙copi Liteというフリーウェア版もありますが、シェアウェア版には

予定表機能が搭載されており、一発でご要望のようなテキストファイルを作成してくれる

ので、紙copiでもExplorerでも扱えるようになっています。

自分の紙copi利用は取り込み機能が殆どで、予定表機能は使っていませんが、試用でき

ますので、参考になればと思います。


紙copi メイン http://www.kamilabo.jp/copi/index.html

紙copi 予定表 http://www.kamilabo.jp/info/jirei_report.html

  • id:SALINGER
    コード中間違いがありました。
    コード中の月→日までの部分を、日→土と1日ずらして変更してください。
  • id:kn1967
    まったく違った方向からになるのでコメントにしますが、
    あらかじめ一年分用意してしまうのではなく、

    その日の日付を自動的に取得し、
    ファイルやフォルダがまだ無ければ作成し、
    メモ帳など普段使っているエディタで開く

    という一連の処理を行ってくれるバッチファイル(もしくは WSHスクリプト)を用いるほうが、
    シンプルではないでしょうか?
  • id:kn1967
    kmond2 2009-08-18 17:23:10
    >シンプルだと主張するなら

    「主張」という言葉の意味をどのように理解しているのか判らんが、
    「シンプルではないでしょうか?」と提案して聞いてみているだけである。

    >具体的なバッチファイル(もしくは WSHスクリプト)を回答してあげたらいいでしょうに。

    本質問とは違う方向だから回答はしない。
    方法論として提案してみているだけだから、不要であればコメントは無視すれば良いし、
    方向性を変えるのであれば、本質問に対して的確な回答をしている方への評価を適宜行って、
    別に質問するのが筋であるから、これまた回答する必要はない。

    あいかわらず、連日連夜 kn1967 に付きまとってなんやかんやと言ってくるが、
    それならば、文章をよく読んで理解できるようになってからにしたまえ。
  • id:GEN111
    なんか貼りづらいけど一応書いてみたので。
    当日分のテキストをメモ帳で開くバッチ。


    @echo off

    set yy=%date:~0,4%
    set mm=%date:~5,2%
    set dd=%date:~8,2%

    set yd=%yy:~2,2%年
    set md=%mm%月
    md %yd%\%md%

    set dt=%dd%日

    set /a mm=1%mm%-100
    set /a dd=1%dd%-100
    set /a wd=yy + yy/4 - yy/100 + yy/400 + (13*mm+8)/5 + dd
    set /a wd=wd %% 7

    if %wd% == 0 set wd=(日)
    if %wd% == 1 set wd=(月)
    if %wd% == 2 set wd=(火)
    if %wd% == 3 set wd=(水)
    if %wd% == 4 set wd=(木)
    if %wd% == 5 set wd=(金)
    if %wd% == 6 set wd=(土)

    set file=%yd%\\%md%\\%dt%%wd%.txt

    start %SystemRoot%\system32\notepad.exe %file%
  • id:GEN111
    ついでにその年の一年分のテキストを作る C++ ソース。C とあまりかわらんが。

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <direct.h>

    int main() {
    time_t ttime ;
    time(&ttime) ;

    struct tm *tm_t = localtime(&ttime) ;

    char str[256] ;

    int year = tm_t->tm_year - 100 ;
    sprintf(str, "%02d年", year) ;
    _mkdir(str) ;

    for (int i = 1; i <= 12; ++i) {
    sprintf(str, "%02d年\\\\%02d月", year, i) ;
    _mkdir(str) ;
    }

    tm_t->tm_mon = 0 ;
    tm_t->tm_mday = 1 ;
    ttime = mktime(tm_t) ;

    char *wday[] = {"日", "月", "火", "水", "木", "金", "土"} ;
    for (; tm_t = localtime(&ttime), tm_t->tm_year == year + 100; ttime += 3600*24) {
    sprintf(str, "%02d年\\%02d月\\%02d日(%s).txt", year, tm_t->tm_mon+1, tm_t->tm_mday, wday[tm_t->tm_wday]) ;

    FILE *fp = fopen(str, "a+") ;
    if (fp) fclose(fp) ;
    }

    printf("完了\n") ;
    system("pause") ;
    }

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません