PowerShell - 如何使用此代码 + AlphaFS 捕获文件路径名称,包括长文件路径名称
PowerShell - how to capture filepath names, including long filepath names with this code + AlphaFS
这个问题是的延伸。
我在使用 AlphaFS 捕获长文件路径名时遇到问题。我查看了相关的 AlphaFS 问题,但看不到它们如何解决我的问题:下面的代码旨在将 $source 目录中的文件捕获到 .csv 中,包括路径长度超过 260 个字符的文件。但是,我在 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 仅包含 4 行代码应找到的 3 个现有文件。最后一个文件有 262 个字符:
Name
123.pdf
321.pdf
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.txt
我在 Windows 7。任何指点将不胜感激。
我将 Alphafs 封装到一个 PS 模块中,您可以在此处的 PowerShell 库中找到该模块。
因为它是一个模块,所以我不能 post 整个代码,但可以包含一个 link,您可以从那里下载它。
获得模块后,您可以执行以下操作:
Get-LongChildItem -path yourpath | export-csv output.csv -notype
这个问题是
我在使用 AlphaFS 捕获长文件路径名时遇到问题。我查看了相关的 AlphaFS 问题,但看不到它们如何解决我的问题:下面的代码旨在将 $source 目录中的文件捕获到 .csv 中,包括路径长度超过 260 个字符的文件。但是,我在 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 仅包含 4 行代码应找到的 3 个现有文件。最后一个文件有 262 个字符:
Name
123.pdf
321.pdf
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.txt
我在 Windows 7。任何指点将不胜感激。
我将 Alphafs 封装到一个 PS 模块中,您可以在此处的 PowerShell 库中找到该模块。
因为它是一个模块,所以我不能 post 整个代码,但可以包含一个 link,您可以从那里下载它。
获得模块后,您可以执行以下操作:
Get-LongChildItem -path yourpath | export-csv output.csv -notype