0

この質問はPowerShell の拡張です。既存のファイルを検索すると空の出力が生成されます

AlphaFS で長いファイル パス名をキャプチャするのに問題があります。関連する AlphaFS の質問を見てきましたが、それらが私の問題にどのように対処しているかわかりません: 以下のコードは、260 文字を超えるパスを持つファイルを含め、$source ディレクトリ内のファイルを .csv にキャプチャすることを目的としています。ただし、TestFileLocations.csv で取得した出力は、次の 1 行で構成されています。

IsReadOnly|"IsFixedSize"|"IsSynchronized"|"Keys"|"Values"|"SyncRoot"|"Count"

125060 行が続きます。

False|"False"|"False"|"System.Collections.Hashtable+KeyCollection"|"System.Collections.Hashtable+ValueCollection"|"System.Object"|"1"

PS コード

[System.Reflection.Assembly]::LoadFrom('C:\AlphaFS\AlphaFS\lib\net35\AlphaFS.dll')
$searchFiles = Import-CSV 'C:\Data\SCRIPTS\PS1\TestFindFile.csv' -Header ("Name")
$source = 'C:\Data\Scripts'
$outputPath = 'c:\data\scripts\ps1\TestFileLocation.csv'

    $searchFiles |  ForEach-Object {
        $files = [Alphaleonis.Win32.Filesystem.Directory]::EnumerateFileSystemEntries($source,'*',[System.IO.SearchOption]::AllDirectories) 
        $files | ForEach-Object { [PSCustomObject] @{FileName = $_} }
    } | export-csv -notypeinformation -delimiter '|' -path $outputPath

私の TestFindFile.csv には、コードによって検出される必要がある 3 つの既存のファイルに関連する 4 行しか含まれていません。最後のファイルには 262 文字あります。

Name
123.pdf
321.pdf
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.txt

私は Windows 7 を使用しています。

4

1 に答える 1

1

Alphafs を PS モジュールにラップしました。これは PowerShell ギャラリー (こちら) にあります。

これはモジュールなので、コード全体を投稿することはできませんが、ダウンロードできるリンクを含めることができます。

PSAlphaFS

モジュールを取得したら、次のようなことができます。

 Get-LongChildItem -path yourpath | export-csv output.csv -notype
于 2016-06-09T08:11:05.107 に答える