gpt4 book ai didi

powershell - 获取子项 : Illegal characters in path

转载 作者:行者123 更新时间:2023-12-02 22:40:42 24 4
gpt4 key购买 nike

我正在尝试登录到多个服务器,然后从这些服务器获取文件列表。

下面是我的脚本:

$ServerName=Get-content "D:\HOMEWARE\BLRMorningCheck\Jerry\servername.txt"
foreach ($server in $ServerName)
{
$server_host=echo $server | %{$data = $_.split(";"); Write-Output "$($data[0])"}
$Targetfolder=echo $server | %{$data = $_.split(";"); Write-Output "$($data[1])"}

$Extension =@("*.log","*.txt*")

$Files = Get-Childitem $TargetFolder -Include $Extension -Recurse

echo $Files
}

当我在 Debug模式下运行时,我发现它确实没有选择文件。

错误:

Get-ChildItem : Illegal characters in path.
At D:\HOMEWARE\BLRMorningCheck\Jerry\test.ps1:14 char:23
+ $Files = Get-Childitem <<<< $TargetFolder -Include $Extension -Recurse
+ CategoryInfo : InvalidArgument: (D:\HOMEWARE\BLR...ck\Jerry\Check":String) [Get-ChildItem], ArgumentException
+ FullyQualifiedErrorId : ItemExistsArgumentError,Microsoft.PowerShell.Commands.GetChildItemCommand

Get-ChildItem : Cannot find path 'D:\HOMEWARE\BLRMorningCheck\Jerry\"\srvparrtfh01\d$\HOMEWARE\BLRMorningCheck\Jerry\Check"' because it does not exist.
At D:\HOMEWARE\BLRMorningCheck\Jerry\test.ps1:14 char:23
+ $Files = Get-Childitem <<<< $TargetFolder -Include $Extension -Recurse
+ CategoryInfo : ObjectNotFound: (D:\HOMEWARE\BLR...ck\Jerry\Check":String) [Get-ChildItem], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

注意:如果我手动运行,例子

$Files = Get-Childitem \\servername\d$\HOMEWARE\BLRMorningCheck\Jerry\Check -Include "*.log","*.txt*" -Recurse

我得到了输出。

最佳答案

正如@arco444 和@PetSerAl 在评论中提到的:您的路径字符串有前导/尾随双引号,它们是路径中的无效字符。您需要删除它们以使路径按预期工作:

$Files = Get-Childitem ($TargetFolder -replace '^"|"$') -Include $Extension -Recurse

当然,由于您的输入文件似乎是某种 CSV,您可以使用 Import-Csv 而不是使用 Get-Content 和手动读取文件拆分字段。这已经解决了文件导入时的双引号。

$filename  = 'D:\HOMEWARE\BLRMorningCheck\Jerry\servername.txt'
$extension = '*.log', '*.txt*'

Import-Csv $filename -Delimiter ';' -Header 'ComputerName', 'TargetFolder' | % {
Get-Childitem $_.TargetFolder -Include $extension -Recurse
}

关于powershell - 获取子项 : Illegal characters in path,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30728526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com