ファイルツリーを再帰的にウォークし、各ノードのパスとその作成時刻をタブ区切り形式で返す単純なPowerShellスクリプトを作成しました。これにより、テキストファイルに書き出して、統計分析に使用できます。 :
echo "PATH CREATEDATE"
get-childitem -recurse | foreach-object {
$filepath = $_.FullName
$datecreated = $_.CreationTime
echo "$filepath $datecreated"
}
ただし、これを実行すると、スクリプトによって生成されるCreationDateの時間は、同じファイルの同じ属性を調べたときにWindowsエクスプローラーが言う時間よりも正確に1時間進んでいることに気付きました。データセットの残りの部分(周囲のイベントを別の形式で記録したもの)を調べたところ、エクスプローラーから得た結果だけが全体的な説明に当てはまることが明らかであり、Powershellに何か問題があると私は信じています。間違った時刻を書き出すスクリプト。なぜそうなるのか、誰かが理解していますか?
問題の背景:
一部のXMLログファイルの設計の問題を修正しようとしています。このファイルは、ユーザーがワークフローのさまざまな段階を通過するのにかかった時間を実際に記録することになっているときに、ユーザーがアプリケーションの使用を開始および停止したときに記録されました。 。ユーザーがXMLログと一緒に送信したバックアップファイルから日付情報を取得することで、この問題を解決するための可能な方法を見つけました。バックアップは、ユーザーがワークフローのステージ間を移行する正確な瞬間にエンドユーザーアプリケーションによって生成されるため、これらのファイルのタイムスタンプからの情報を元のXMLログの内容と一緒に取得して、何を把握しようとしています。ワークフローの手順について知りたいと思いました。
コメントディスカッションで出てきたポイントのまとめ:
- ファイルは、実行しているスクリプトと同じマシンにあります(ネットワークストアではありません)。
- 夏時間とタイムゾーンを修正すると、データ品質が向上しますが、元の質問で提起された特定の問題については改善されません。