Powershell使用C#实现缩写路径
支持2.0及以后版本。
某些时候报表中的路径字符串是非常长的。如果需要你也可以缩写它,但是这样路径就失去的使用价值。最好是使用内置的API它可以灵活的缩略路径。
接下来要告诉你如何在Powershell脚本中使用C#代码:
$newType=@'
usingSystem;
usingSystem.Text;
usingSystem.Runtime.InteropServices;
namespaceWindowsAPILib
{
publicclassHelper
{
[DllImport("shlwapi.dll",CharSet=CharSet.Auto,SetLastError=true)]
internalstaticexternboolPathCompactPathEx(System.Text.StringBuilderpszOut,stringpszSrc,Int32cchMax,Int32dwFlags);
publicstaticstringCompactPath(stringPath,intDesiredLength)
{
StringBuildersb=newStringBuilder(260);
if(PathCompactPathEx(sb,Path,DesiredLength+1,0))
{returnsb.ToString();}
else
{returnPath;}
}
}
}
'@
Add-Type-TypeDefinition$newType
一旦你执行这段代码,就会产生一个新的.Net类,其中会增加一个新的静态方法“CompactPath”,现在你就可以这样使用它了:
PS>$pshome C:\Windows\System32\WindowsPowerShell\v1.0
PS>[WindowsAPILib.Helper]::CompactPath($pshome,12) C:\W...\v1.0
PS>[WindowsAPILib.Helper]::CompactPath($pshome,18) C:\Windows...\v1.0
PS>[WindowsAPILib.Helper]::CompactPath($pshome,22) C:\Windows\Sys...\v1.0
热门推荐
10 财运虎年祝福语简短语
11 单亲爸爸春节祝福语简短
12 狗狗上厕所训练
13 植物种植祝福语简短
14 翻译考试祝福语朋友简短
15 个人周年庆简短祝福语
16 狗狗怎么训练
17 分别祝福语简短搞笑英文
18 生日广州男生祝福语简短