1

1 日前のファイルのレポートを作成しようとしています。現在、ファイル名と日付を含めるスクリプトがあります。

get-childitem -Path \\UNC_PATH_TO_FILE
         | where-object {$_.lastwritetime -gt (get-date).addDays(-1)}
         | Foreach-Object { $_.Name, $_.CreationTime }

以前は、これを各 UNC パスのファイルにエクスポートしていましたが、現在はこれが大きくなり、22 個の個別のファイルを読み取る必要があります。

これを、 ServerFilename ( $_.Name) 、Date ( )の coll を含む CSV ファイルに統合したいと考えています$_.CreationTime

これは私の Powershell 領域の外にあり、本当に役立つものを見つけることができません。誰かが助けを提供できますか?

4

3 に答える 3

2

あなたはこれを試すことができます:

$paths = "\\server1\unc\path", "\\server1\unc\path" 
Get-ChildItem -Path $paths
         | Where-Object {$_.lastwritetime -gt (Get-Date).addDays(-1)}
         | Select-Object @{n="Server";e={([uri]$_.FullName).Host}},
                         @{n="Filename";e={$_.Name}},
                         @{n="Date";e={$_.CreationTime}},
                         @{n="FileSize(MB)";e={[Math]::Round($_.Length/1MB,3)}}
         | Export-Csv test.csv -NoTypeInformation

UNCパスからサーバー名を抽出し、指定した名前で他のプロパティの名前を変更します。

于 2013-01-23T17:28:07.033 に答える
1

ファイルごとに新しいオブジェクトを作成する例を次に示します。

Get-ChildItem -Path \\UNC_PATH_TO_FILE |
Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-1)} | 
ForEach-Object { 
    New-Object PSObject -Property @{
        Server = $_.FullName -replace '^\\\\([\w]+)\\.+$','$1'
        Name = $_.Name
        CreationTime = $_.CreationTime    
    }
} | Export-Csv -Path files.csv -NoTypeInformation
于 2013-01-23T20:23:56.460 に答える
0

以下が機能するはずです。

get-childitem -Path \\UNC_PATH_TO_FILE
         | where { $_.lastwritetime -gt (get-date).AddDays(-1)} 
         | foreach-object { $env.COMPUTERNAME,$_.Name, $_.CreationTime}
         | Export-Csv -Path foo.txt -NoTypeInformation
于 2013-01-23T17:29:02.913 に答える