2011-06-29 6 views
2

これもpowershellのusenetグループに掲載しましたが、現在はほとんど死んでいると思います。Powershell/Logparsingキャストデータ型

私は頭上でスクリプトを作成しています。 PowerShellと ログパーサーの両方で作業する。私は現在、CSVの入力と出力を accdbに入れようとしています。私は1つの問題で、良い作業スクリプトを持っています。

私のフィールドの1つはdatetime型である必要があります。しかし、exports-csv経由でpowershellから をエクスポートするcsvは、それを文字列にします。私は をdatetime形式にすることを好むでしょう。私は(LogParserを使って)型キャストを調べ、ParseExact(powershellを使って)に を入れましたが、私は紛失しています。

"TIME","TEMP","HUMID","DEWPT" 
"06/28/2011 12:53:13","70.9","79.8","63.6" 
"06/28/2011 12:23:07","70.8","78.6","63.1" 
"06/28/2011 11:53:00","70.8","78.9","63.2" 
"06/28/2011 11:22:53","70.7","78.4","62.9" 

ここで私は(PowerShellで)ParseExactのために作ってみたものです::

{ [datetime]::ParseExact($_."TIME","MM'/'dd'/'YYYY' 'HH':'MM':'SS") } 

ここ

は輸出-CSVが作っていることをcsvファイルが何の例です。あなたが accdbデータベースにcsvデータを追加するために使用しているコードを知る必要がある場合は、私にそれを通知します。私は、キャストがどこで起こるかについては好みがありません。私はpowershellでCSVを作成し、logparser経由でAccessのテーブルにコピーします。

ありがとうございます。

+0

parseexactは不要です。 [datetime] "06/28/2011 12:53:13" – mjolinor

+0

[datetime]または[datetime] :: –

+0

と運がないtest_csv.csvとして投稿されたテストデータを使用するこれは[datetime]オブジェクトを吐き出します:import-csv test_csv.csv | foreach {$ _。time -as [datetime]} – mjolinor

答えて

1
+0

これはOGVの目的のために働き、export-csvを実行するときにAM/PMにフォーマットを変更しますが、logparserを使用してデータベースに入れても、 。 –

+0

csvにエクスポートするものはすべて、文字列としてエクスポートされます。すべてのcsvデータは文字列値です。データベースにコミットするときに強く型付けする必要がある場合は、csvからインポートした後、コミットする前に再キャストする必要があります。 Logparserは文字列データ以外のものを処理できないことがあります。 – mjolinor

+0

ご協力いただきありがとうございます。私はあなたの答えを投票しようとしましたが、私は十分なrepポイントを持っていないと言います。 –