
職場で簡単なファイルのバックアップ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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シャットダウン時に自動ファイ...
-
NAS上のBATファイル実行
-
batファイルの中身を確認する方法
-
バッチファイルで他のバッチフ...
-
batファイルからPCをシャットダ...
-
【VBA】写真の縦横比を変えずに...
-
Not kind:Folders
-
タスクスケジューラで指定フォ...
-
検索したファイルの場所を調べ...
-
常に「すべての列のサイズを自...
-
ファイル並び順がバラバラで困...
-
Windows10のクイックアクセスの...
-
ハードディスクのファイル検索は
-
Win7フォルダ名入力中にIMEの変...
-
google Drive 容量を減らせない...
-
EXCELファイルを開くと・・・
-
Wordを開こうとすると『環境変...
-
ファイル検索ツール
-
ハイパーリンク設定画面の「検...
-
フォルダのプロパティでセキュ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シャットダウン時に自動ファイ...
-
バッチファイルで他のバッチフ...
-
NAS上のBATファイル実行
-
システム環境変数の削除の自動...
-
vbsでバッチファイルを作成・実行
-
.datファイル 作成
-
右クリックで新規作成するテキ...
-
batファイルからPCをシャットダ...
-
コマンドプロンプトでファイル...
-
バッチファイルでの情報収集
-
バッチ処理のコマンドについて
-
コマンドラインから実行する方法
-
別のPCをバッチファイルを使用...
-
ファイル名を全て同じ名前にす...
-
バッチファイルの作り方
-
ファイルの作成日時について
-
●スタンバイの際に、任意のアプ...
-
ImageMagickでのバッチファイル...
-
バッチファイルで実行できたり...
-
【VBA】写真の縦横比を変えずに...
おすすめ情報