使用powershell的路径中的非法字符
illegal characters in path using powershell
我需要使用 powershell 验证一条路径。问题是当给出像 Test-Path -Path "\.2.200.13\share\Logger\Logger"
这样的路径时它工作正常,但我的要求是,这个路径将在记事本中可用 - 我们需要从记事本中读取路径然后验证它。这是代码:
$var = ( Get-Content D:\TestPathIssue\Params.txt ) -split '='
$source1=$var[1].Trim();
test-path -Path $source1;
我可以在 $source1
中找到路径,但我不明白为什么在 Test-Path
中这种方法失败了。
检查变量 $source1 是否返回引号中的路径,例如:- "\10.2.200.13\share\Logger\Logger" 而不是 \10.2.200.13\share\Logger\Logger
通过尝试修复 -
$source1=$source1 -replace '"', ""
以下 powershell 代码将使用正则表达式获取合法字符列表,并报告在文件名中发现的任何非法字符。根据需要修改合法字符列表。
$legal = "[a-zA-Z\d\.\-'_\s\(\)&,%\[\];\!$\+@~=#]"
ForEach ($File in Get-ChildItem -Path C:\mypath -Recurse){
ForEach ($char in $File.Name.ToCharArray()){
If ($char -notmatch $legal){
$output = $char+" found in "+$file.fullname
write-output $output
break
}
}
}
我需要使用 powershell 验证一条路径。问题是当给出像 Test-Path -Path "\.2.200.13\share\Logger\Logger"
这样的路径时它工作正常,但我的要求是,这个路径将在记事本中可用 - 我们需要从记事本中读取路径然后验证它。这是代码:
$var = ( Get-Content D:\TestPathIssue\Params.txt ) -split '='
$source1=$var[1].Trim();
test-path -Path $source1;
我可以在 $source1
中找到路径,但我不明白为什么在 Test-Path
中这种方法失败了。
检查变量 $source1 是否返回引号中的路径,例如:- "\10.2.200.13\share\Logger\Logger" 而不是 \10.2.200.13\share\Logger\Logger
通过尝试修复 -
$source1=$source1 -replace '"', ""
以下 powershell 代码将使用正则表达式获取合法字符列表,并报告在文件名中发现的任何非法字符。根据需要修改合法字符列表。
$legal = "[a-zA-Z\d\.\-'_\s\(\)&,%\[\];\!$\+@~=#]"
ForEach ($File in Get-ChildItem -Path C:\mypath -Recurse){
ForEach ($char in $File.Name.ToCharArray()){
If ($char -notmatch $legal){
$output = $char+" found in "+$file.fullname
write-output $output
break
}
}
}