忍者ブログ
infoseekの本サイト消滅につき旧作品が行方不明に…… 横浜みなとみらいを徘徊する記録
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2024/03/29 (Fri)
ファイルのタイムスタンプを設定する方法を探していました。
PowerShellを使った方法が見つかったので備忘録として載せます。

<スクリプトの実行環境>
OS : Windows Home Server 2011
ツール: Windows PowerShell

<構成>
1. PowerShellによるタイムスタンプ取得
2. PowerShellによるタイムスタンプ設定
3. サンプルスクリプト
4. サンプルスクリプトの実行準備
5. スクリプト実行後の後片付け
6. 参考文献
1. PowerShellによるタイムスタンプ取得

任意のファイルに対してタイムスタンプを取得する
> Get-ItemProperty .\sample1.txt

.\sample1.txtはカレントディレクトリ配下に存在するファイルを差しています。


2. PowerShellによるタイムスタンプ設定
sample1.txt に対してタイムスタンプを2011年1月1日 AM8:00に設定します。
> Set-ItemProperty .\sample1.txt LastWriteTime -value "1/1/2011 8:00 AM"

3. サンプルスクリプト
ファイル名:filemake.ps1
概要:
サイズ0バイトのファイル1.txt~8.txtを作成し、それぞれのファイルに対して任意のタイムスタンプを設定する。

スクリプト本文:

"" > 1.txt
"" > 2.txt
"" > 3.txt
"" > 4.txt
"" > 5.txt
"" > 6.txt
"" > 7.txt
"" > 8.txt
Set-ItemProperty .\1.txt LastWriteTime -value "1/1/2011 8:00 AM"
Set-ItemProperty .\2.txt LastWriteTime -value "2/1/2011 8:00 AM"
Set-ItemProperty .\3.txt LastWriteTime -value "3/1/2011 8:00 AM"
Set-ItemProperty .\4.txt LastWriteTime -value "4/1/2011 8:00 AM"
Set-ItemProperty .\5.txt LastWriteTime -value "5/1/2011 8:00 AM"
Set-ItemProperty .\6.txt LastWriteTime -value "6/1/2011 8:00 AM"
Set-ItemProperty .\7.txt LastWriteTime -value "7/1/2011 8:00 AM"
Set-ItemProperty .\8.txt LastWriteTime -value "8/1/2011 8:00 AM"


4. サンプルスクリプトの実行準備
既定の状態では拡張子ps1のファイルをダブルクリック、またはPowerShell上で実行しても拡張子に関連付けられたアプリケーションに引き渡されるのみである。

そこで以下のコマンドを用いて、スクリプトファイルの実行ポリシーを確認する。
> Get-ExecutionPolicy

実行ポリシーには以下の4種類がある。
◇Restricted(既定値)
→コマンドのみ実行可能(スクリプトは実行不可)

◇AllSigned
 →コマンドと署名のあるスクリプトファイルのみ実行可能
 (署名のないスクリプトファイルは実行不可)
◇RemoteSigned
 →コマンドと一部のスクリプトファイルが実行可能
  インストールしたコンピュータで作成したスクリプトファイルは署名なしで実行可能
  ダウンロードしたスクリプトファイル等は署名がないと実効不可
◇Unrestricted
 →コマンドと全てのスクリプトファイルが実行可能
 (スクリプトファイルに署名の必要はない)

ここでは、同じコンピュータでスクリプトの作成実行する。
したがって、RemoteSigned を選択する

一時的な変更方法は以下のコマンドレットを実行する
> Set-ExecutionPolicy Restricted
> Set-ExecutionPolicy RemoteSigned
(※2013/2/1訂正)

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution
_Policies のヘルプ
トピックで説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): y

スクリプトを実行します。
> .\filemake.ps1

実行結果を以下に示します。
LastWriteTime Length Name
------------- ------ ----
2011/01/01 8:00 6 1.txt
2011/02/01 8:00 6 2.txt
2011/03/01 8:00 6 3.txt
2011/04/01 8:00 6 4.txt
2011/05/01 8:00 6 5.txt
2011/06/01 8:00 6 6.txt
2011/07/01 8:00 6 7.txt
2011/08/01 8:00 6 8.txt
2011/10/12 22:43 624 filemake.ps1
2011/01/01 8:00 0 sample1.txt

5. スクリプト実行後の後片付け
スクリプトの実行ポリシーを元に戻します。
> Set-ExecutionPolicy Restricted

6. 参考文献
【PowerShell】スクリプトファイル(.ps1)を実行する
http://blog.livedoor.jp/akf0/archives/51313233.html

10.ファイルの作成日時/更新日時を取得する
http://hiros-dot.net/PowerShell/file/file10.htm

11.ファイルの作成日時/更新日時を設定する
http://hiros-dot.net/PowerShell/file/file11.htm

拍手[0回]

PR
Name
Title
Text Color
URL
Comment
Password
Vodafone絵文字 i-mode絵文字 Ezweb絵文字