Powershell使用C#实现缩写路径

 更新时间:2015年01月08日 11:05:33   投稿:junjie  
这篇文章主要介绍了Powershell使用C#实现缩写路径,缩写路径有时候是非常有用的,比如某些报表的路径太长会很难看,缩写后就会好看许多,需要的朋友可以参考下

支持2.0及以后版本。

某些时候报表中的路径字符串是非常长的。如果需要你也可以缩写它,但是这样路径就失去的使用价值。最好是使用内置的API它可以灵活的缩略路径。

接下来要告诉你如何在Powershell脚本中使用C#代码:

复制代码 代码如下:

$newType = @'
using System;
using System.Text;
using System.Runtime.InteropServices;
 
namespace WindowsAPILib
{
    public class Helper
    {
        [DllImport("shlwapi.dll", CharSet = CharSet.Auto, SetLastError = true)]
        internal static extern bool PathCompactPathEx(System.Text.StringBuilder pszOut, string pszSrc, Int32 cchMax, Int32 dwFlags);
 
        public static string CompactPath(string Path, int DesiredLength)
        {
            StringBuilder sb = new StringBuilder(260);
            if (PathCompactPathEx(sb, Path, DesiredLength + 1, 0))
            { return sb.ToString(); }
            else
            { return Path; }
        }
    }
}
'@
 
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

相关文章

  • 在cmd中直接运行PowerShell脚本文件的方法

    在cmd中直接运行PowerShell脚本文件的方法

    这篇文章主要介绍了在cmd中直接运行PowerShell脚本文件的方法,本文给出了两个小技巧实现在cmd中直接运行PowerShell脚本,需要的朋友可以参考下
    2014-12-12
  • PowerShell在控制台输出特殊符号的方法

    PowerShell在控制台输出特殊符号的方法

    这篇文章主要介绍了PowerShell在控制台输出特殊符号的方法,本文给出了实现代码和输出图例,本文代码输出了一个绿色三角形,需要的朋友可以参考下
    2015-06-06
  • PowerShell小技巧之使用New-Module命令动态创建对象

    PowerShell小技巧之使用New-Module命令动态创建对象

    这篇文章主要介绍了在PowerShell中使用New-Module命令动态创建对象,比New-Object高大上很多了吧
    2014-09-09
  • PowerShell批量安装msi后辍软件的方法

    PowerShell批量安装msi后辍软件的方法

    这篇文章主要介绍了PowerShell批量安装msi后辍软件的方法,需要的朋友可以参考下
    2014-05-05
  • PowerShell查看本机文件关联程序和默认打开程序的方法

    PowerShell查看本机文件关联程序和默认打开程序的方法

    这篇文章主要介绍了PowerShell查看本机文件关联程序和默认打开程序的方法,本文给出了查看方法,同时给出了一份读取结果,需要的朋友可以参考下
    2015-06-06
  • Windows Powershell Where-Object 条件过滤

    Windows Powershell Where-Object 条件过滤

    本篇会对条件判断进行实际应用。在管道中可以通过条件判断过滤管道结果,Where-Object会对集合逐个过滤,将符合条件的结果保留。
    2014-10-10
  • Windows Powershell 环境变量

    Windows Powershell 环境变量

    Windows PowerShell提供了一个名为euv的盘符,通过它可以访问传统的环境变量。因此,举个例子来说,Cmd.exe传统命令行中的%TEMP%变量,在PowerShell中对应的表达式就是env:\temp。今天我们就来详细的探讨下Powershell的环境变量
    2014-09-09
  • PowerShell替换字符串操作符replace简明教程

    PowerShell替换字符串操作符replace简明教程

    这篇文章主要介绍了PowerShell替换字符串操作符replace简明教程,本文用实例讲解字符串的替换操作,需要的朋友可以参考下
    2014-08-08
  • Windows Powershell 创建数组

    Windows Powershell 创建数组

    在日常处理中,除了使用像“数值类型”和“字符串类型”外,还需要使用能够包含其他对象的“集合”类型。大多数常见语言,都提供一些操作集合类型的语法。最基本的集合类型就是数组类型,它提供了一种下标基于0的数组对象。
    2014-09-09
  • Powershell实现监测服务器连通状态

    Powershell实现监测服务器连通状态

    这篇文章主要介绍了Powershell实现监测服务器连通状态,代码很简单,本文直接给出实现代码,需要的朋友可以参考下
    2015-05-05

最新评论