何コレ?
一年前作成した「毎日毎日、日記のため、日報のため、作業記録のため、日付だけ変えて同じ名前のファイルを作るのに飽き飽きしてきたので、VBSで代替することにしました。」のその2です。自分では使ってたんですが面倒で公開してませんでした(笑
今回はテンプレートを指定したフォルダから今日の日付でコピー。ついでにファイルを開いてくれるもの前回のファイル作成と同じです。同名ファイルが既にあれば、上書きせずに開いてくれます。やってる事の都合上、TXTファイル以外でも対応可能です。
サンプルコードとして晒します。
このまま利用する場合、コードの部分をテキストエディタにコピーして拡張子「.vbs」で保存してください。
備考
ファイルが作成されるフォルダは、スクリプトを実行したフォルダになります。スクリプトを別の場所から呼び出す場合はショートカットを利用していただければ良いと思います。自分はWindows10 64bit 環境で作成しました。
免責に関して
悪意を持ってスクリプトを書いてはいませんが、このスクリプトを参照、利用して発生したあらゆる損害は免責されるものとします。このスクリプトを利用された時点でこの免責事項を承諾されたものとみなします。当然ですが、当スクリプトを改変の上利用された場合も同様に免責されます。
'■■■変数部■■■ Dim fileName Dim strDate '■■■設定部■■■ '□ ダイアログ表示(False = 表示しない True = する) Dim msgFlag :msgFlag= True '□ ファイル名頭 Dim fileNameCrown :fileNameCrown = "" '□ ファイル名尻 Dim fileNameTail :fileNameTail = "■日記" '□ ファイル名拡張子 Dim fileNameSuffix :fileNameSuffix = ".txt" '□ テンプレート(Copy元)ファイル Dim fileTemplate :fileTemplate =".\template\template.txt" '出力形式↓ 'Crown + yyyymmdd + Tail + Suffix '■■■処理部■■■ '日付取得&'日付文字列化 strDate = Date() '日付フォーマット変更 strDate = Replace(strDate, "/", "-") 'ファイル名合成 'FileName fileName = fileNameCrown & strDate & fileNameTail & fileNameSuffix 'ファイル操作準備 Dim FSO Set FSO = CreateObject("Scripting.FileSystemObject") If FSO.FileExists(fileName) Then '存在すれば何もしない '作成しなかった旨ダイアログで出す。 If msgFlag Then WScript.Echo "ファイルが存在します。" & VbCrLf & "「" & fileName & "」" End If Else 'ファイル存在しなければコピー Call FSO.CopyFile(fileTemplate, fileName, false) '作成の成功ダイアログで出す If msgFlag Then WScript.Echo "テンプレートをコピーしました。" & VbCrLf & "「" & fileName & "」" End If End If 'ファイル操作後処理 Set FSO = Nothing '作成したファイルを開く CreateObject("Shell.Application").ShellExecute fileName
↓ 冒頭で言及した「その1」、TXTファイルをVBSでクリエイトするバージョンです