2

我有一个脚本,它基本上写下远程共享上的每个文件和文件夹并将其转储到 csv。除了最后一部分,一切都运行得很好(脚本本身还有很多工作要做)。

Import-Csv -Path ($savelocation + '\' + $filename) -Delimiter ',' | ForEach-Object {
    if ($audioarray -contains $_.Extension) {
        $_.MediaType = 'Audio'
        $_
    } elseif ($videoarray -contains $_.Extension) {
        $_.MediaType = 'Video'
        $_
    } elseif ($otherarray -contains $_.Extension) {
        $_.MediaType = 'Other'
        $_
    } else {
        $_
    }
} | Export-Csv -Path ($savelocation + '\' + $filename) -Force -Delimiter ',' -NoTypeInformation

如果我将路径更改为静态位置,\\servername\share\testfolder则可以正常工作。但是,如果我使用上面的方法,或者即使我加入了($savelocation + '\' + $filename)类似的东西,$filename它仍然只是写一个空文件。

4

2 回答 2

4

抱歉,它不适用于任何路径。原因很简单——你读/写同一个文件。如果您读入变量并处理内存中的数据,它将起作用。

IMO 具有存储在变量中的路径(元素)与它无关。顺便说一句:您可以使用 Join-Path cmdlet 加入路径... :)

于 2012-05-25T19:31:09.337 回答
1

如果您将路径放在可验证的位置,它将起作用

$path = $savelocation + '\' + $filename
Export-Csv -Path $path -Force -Delimiter ',' -NoTypeInformation
于 2018-02-08T15:22:28.700 回答