如何在Windows上压缩我的$ path?

时间:2015-04-04 00:27:39

标签: powershell

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函数的内容。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

正如您已经注意到的,$env:PATH的值是以分号分隔的列表。

要将其拆分,请使用-split operator

$Paths = $env:PATH -split ";"

由于您尚未在函数中声明任何命名或位置参数,因此您必须将字符串传递给它们:

@($env:PATH -split ";") | Get-ShortName