
職場で簡単なファイルのバックアップPGをWSHで作っていますが
ファイルの作成日時が思うように入ってくれません。
WSHの流れは下記にしたいと考えています。
(1)前回分のファイルを作成日時を末尾に付けてリネーム
(2)WSHからバッチを呼び出して、ファイル作成
(2)でファイルが作成はされるのですが、(1)の処理でリネームした
ファイルの作成日時(実行時間より古い時間)が入って作成されてしまい、(2)が実行された
日付が入ってくれません。
ちなみに、更新日時アクセス日時は(2)の実行時間が入ります。
環境は以下になります。
OS:Windows7Pro SP1
→この先WindowsSV 2008R2で実行させたいと考えています。
Windowの仕様なのか、どうなのか、わからないのですが
どなたか何か回避策をご存じの方がみえれば、ご教授をお願いいたします。
テストで作成したWSHとBatのソースを下記に貼り付けます。
WSH ***************************************
option explicit
'変数定義
Dim objFso
Dim objFile
Dim objWShell
'オブジェクトの生成
Set objFso = Wscript.CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.GetFile("C:\testDir\File-A.txt")
'ファイル名変更
objFso.GetFile("C:\testDir\File-A.txt").Name = "File-B.txt"
'オブジェクト解放
Set objFile = Nothing
'bat実行
Set objWShell = CreateObject("WScript.Shell")
objWShell.Run "C:\testDir\echo.bat", 0, True
'batで作成したFile-Aのオブジェクト生成
Set objFile = objFso.GetFile("C:\testDir\File-A.txt")
'オブジェクト解放
Set objWShell = Nothing
Set objFile = Nothing
Set objFso = Nothing
WSH ***************************************
Bat ****************************************
echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA > C:\testDir\File-A.txt
Bat ****************************************
以上、よろしくお願いします。
No.2ベストアンサー
- 回答日時:
その方法での名前の変更はおかしくありませんか?
たとえばコマンドプロンプトでの Rename コマンドや
Windowsエクスプローラでの「名前の変更」では
ファイルの「作成日時」は当初の作成日時のままです。
たとえば添付画像の
DCサーボ.html ファイルは
Renameや「名前の変更」を行なっても作成日時に変化はありません。
> objFso.GetFile("C:\testDir\File-A.txt").Name = "File-B.txt"
の結果、Windowsエクスプローラで照会しても作成日時が更新されていますか?

この回答への補足
ご回答ありがとうございます。
私のご説明が足りておらず、すみません。
私が実現したいことは、作成日時を変更したいのではなく、
作成日時を取得してファイル名(ファイル名をFileAとして作成。)の末尾に作成日時を付け足して
リネームさせたいのですが、そもそも、ファイル(FileA)が作成されるときに付く
作成日時が過去日時が付いてしまうので、困っております。
説明が足りているか、わらりませんが、処理の流れを記載します。
1)FileAを作成
2)FileAを作成日時を取得リネーム
なので、ファイル名はこんな感じ→ FileA_20140411
3)別処理(バッチ)でFileAを作成 ※作成する場所は同じフォルダ上
※3)の処理で新しいFileAを作成するときに1)でリネームした古いFileAの作成日時が
何故か、入って新しいFileAが作成されてしまう。
サンプルで載せた、ソースを数回実行していただき、FIle-Bの作成日時をプロパティから
確認していただければ、現象がわかるかと思います。
よろしくお願いします。
No.1
- 回答日時:
DateCreated プロパティで確認してみてください。
echo "ファイル作成日付: " & objFile.DateCreated
この回答への補足
kteds様 ご回答ありがとうございます。
「echo "ファイル作成日付: " & objFile.DateCreated」入れて確認しましが、結果は同じでした。
DateLastModifiedも、DateLastAccessedも入れて確認しましたが、DateCreatedの日時のみ過去日付(リネームをかけたファイルの作成日時)が付いてました。
同一ファイル名でファイルを作ると、どうやら上記の動きをするようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Excel(エクセル) Excel-VBAの「しばらくお待ちください」のダイアログが自動的に閉じない 2 2023/05/24 15:31
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- その他(プログラミング・Web制作) バッチファイルでPCのモデル名を取得したい 1 2022/03/31 10:58
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) vba メモリ節約 3 2022/09/16 21:45
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
NAS上のBATファイル実行
-
シャットダウン時に自動ファイ...
-
コマンドプロンプトでファイル...
-
ファイル名のカッコの位置を一...
-
【VBA】写真の縦横比を変えずに...
-
検索したファイルの場所を調べ...
-
常に「すべての列のサイズを自...
-
Not kind:Folders
-
複数のワードのファイルから検索
-
拡張子KIHを見るソフトって有り...
-
ショートカットファイルそのも...
-
貼り付けとショートカットの貼...
-
エクスプローラの検索で期間と...
-
google Drive 容量を減らせない...
-
タスクスケジューラで指定フォ...
-
System32内のファイルを書き換...
-
TextBoxの最下行を表示しておき...
-
全CSVファイルに一行だけ追加し...
-
VMWare Playerの共有フォルダは...
-
エクスプローラーの強制終了
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シャットダウン時に自動ファイ...
-
バッチファイルで他のバッチフ...
-
NAS上のBATファイル実行
-
batファイルからPCをシャットダ...
-
バッチ処理のコマンドについて
-
ファイルの作成日時について
-
右クリック→新規作成にテキスト...
-
batファイルの中身を確認する方法
-
ファイル名を全て同じ名前にす...
-
バッチファイルでアクセス権無...
-
ファイル名のカッコの位置を一...
-
書き込み禁止動画ファイルの解...
-
バッチファイルで実行できたり...
-
コマンドプロンプトでファイル...
-
別のPCをバッチファイルを使用...
-
dosでaliasの設定はできますか?
-
システム環境変数の削除の自動...
-
バッチファイルについて教えて...
-
DOSのUSコマンドを含む処理をを...
-
windowsXPのBEEP音を任意の音声...
おすすめ情報