Windows的路径限制为260个字符。我已经吹过它了,而且它已经加剧了。我想找到一些方法来绕过它。
到目前为止,我已经想到在powershell中编写一个脚本来获取我的路径变量,解析它,然后用内部所有字符串的Windows短路径表示来设置路径。
这是我到目前为止所拥有的:
Function Get-ShortName
{
BEGIN { $fso = New-Object -ComObject Scripting.FileSystemObject }
PROCESS
{
If ($_.psiscontainer)
{$fso.getfolder($_.fullname).ShortName}
ELSE
{$fso.getfile($_.fullname).ShortName}
}
}
function Get-ShortPath {
begin { $fso = New-Object -ComObject Scripting.FileSystemObject }
process {
if ($_.psiscontainer)
{$fso.getfolder($_.fullname).shortpath}
else
{$fso.getfile($_.fullname).shortpath}
}
}
我是PowerShell的初学者,现在我很难解决如何解析$ env:path返回的分号分隔列表并将其转换为我可以传递给我的Get-ShortPath函数的内容。有什么建议吗?
答案 0 :(得分:2)
正如您已经注意到的,$env:PATH
的值是以分号分隔的列表。
要将其拆分,请使用-split
operator:
$Paths = $env:PATH -split ";"
由于您尚未在函数中声明任何命名或位置参数,因此您必须将字符串传递给它们:
@($env:PATH -split ";") | Get-ShortName