将很长的文件路径缩短,并且在powershell和windows中能够识别。下面有一个函数:
function Get-ShortPath($Path) { $code = @' [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError=true)] public static extern uint GetShortPathName(string longPath, StringBuilder shortPath,uint bufferSize); '@ $API = Add-Type -MemberDefinition $code -Name Path -UsingNamespace System.Text -PassThru $shortBuffer = New-Object Text.StringBuilder ($Path.Length * 2) $rv = $API::GetShortPathName( $Path, $shortBuffer, $shortBuffer.Capacity ) if ($rv -ne 0) { $shortBuffer.ToString() } else { Write-Warning "Path '$path' not found." } } #测试 PS C:mossfly> md "Powershell 缩短文件路径缩短文件路径缩短文件路径缩短文件路径缩短文件路径" 目录: C:mossfly Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2012/3/30 23:10 Powershell 缩短文件路径缩短文件路径缩短文件路径缩短文 件路径缩短文件路径 PS C:mossfly> Get-ShortPath "Powershell 缩短文件路径缩短文件路径缩短文件路径缩短文件路径缩短 文件路径" POWERS~1 PS C:mossfly> Test-Path POWERS~1 True PS C:mossfly> cd POWERS~1 PS C:mossflyPowershell 缩短文件路径缩短文件路径缩短文件路径缩短文件路径缩短文件路径>
本文链接: https://www.pstips.net/powershell-short-path.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!