PowerShell中的转义字符是什么?
PowerShell中转义字符是`,向后撇号(backward apostrophe,是tab键上面的按键,不是单引号),例如:Write-Host `$env:processor_architecture=$env:processor_architecture会输出$env:processor_architecture=AMD64当然还有一个转义字符是在正则表达式(Regular Expression)中使用的\,斜线。...
2024-01-10PowerShell 范围
示例变量的默认范围是封闭容器。如果在脚本或其他容器之外,则范围为Global。要指定作用域,应在变量名之前添加前缀,$scope:varname如下所示:$foo = "Global Scope"function myFunc { $foo = "Function (local) scope" Write-Host $global:foo Write-Host $local:foo Write-Host $foo}myFuncWrite-Host $local:foo...
2024-01-10在Powershell中模拟`ls`
我试图在PowerShell中获得类似UNIX ls输出的内容。这是越来越有:在Powershell中模拟`ls`Get-ChildItem | Format-Wide -AutoSize -Property Name 但它仍然输出中的各项行为主,而不是列优先的顺序:PS C:\Users\Mark Reed> Get-ChildItem | Format-Wide -AutoSize -Property Name Contacts Desktop Documents Downloads Favori...
2024-01-10Powershell比较两个文件夹的不同
快速找出两个文件夹中不同的部分,可以使用下面例子:$list1 = Get-ChildItem c:\Windows\system32 | Sort-Object -Property Name $list2 = Get-ChildItem \\server12\c$\windows\system32 | Sort-Object -Property Name Compare-Object -ReferenceObject $list1 -DifferenceObject $list2 -Property N...
2024-01-10Powershell小技巧之屏蔽输出结果
从PS命令返回的任何结果后,对于任何不重要的结果将其屏蔽是非常重要的。我们有很多方法去实现它,同时下面介绍两个比较特别的方法。注意下面两行尝试在C盘创建一个新的文件夹:。New-Item将输出这个文件夹的对象,但是当你在创建文件夹时你可能会想屏蔽创建的结果:$null = New-Item -Path c:\newfo...
2024-01-10PowerShell打开或关闭光驱
机箱没有选好, 光盘的出仓/收仓键被挡住了, 用起来很别扭. 记得有一款小软件可以控制光驱的出仓与收仓. 搜索了一下使用的Windows API. 编写了下面的代码, 希望大家喜欢:PS C:\Users\Eden> $a = Add-Type -memberDefinition @">> [DllImport("winmm.dll", CharSet = CharSet.Ansi)]>> public static extern int mciSendStringA(>> string lpstrComm...
2024-01-10Powershell 脚本数字签名实现方法
脚本很容易被冒名顶替或者更改,因为它们是由纯文本构成的。数字签名为脚本提供了更高的安全性,因为它能确定脚本和脚本的编辑者的唯一性,并且不能被更改。作为脚本的发布者,你能确定你的脚本没有被恶意篡改。即使专家也无能为力,因为这种机制是基于复杂逻辑的。幸运的是,在实际应用...
2024-01-10在PowerShell中,Get-Process命令的用途是什么?
Get-Process是PowerShell cmdlet,用于获取Windows终端中正在运行的后台进程的所有实例。无论在“任务管理器的进程”选项卡中显示哪个进程,都可以通过Get-Process命令在PowerShell控制台中显示它们的所有线程。...
2024-01-10PowerShell模块的存储位置?
PowerShell模块存储在其模块路径中。可以使用环境变量$env:PSModulePath检索模块路径。为了获得更好的视图,我们将分号分隔可变路径。$env:PSModulePath -split ';'C:\Users\Administrator\Documents\WindowsPowerShell\ModulesC:\Program Files\WindowsPowerShell\ModulesC:\Windows\system32\WindowsPowerShell\v1.0\Modules您可...
2024-01-10PowerShell中终止管道的方法
如果你能够提前知道你想从管道中获取元素的个数,可以使用Select-Object来终止流处理命令的的管道,这会节省很多时间。下面的例子会从Windows文件夹下搜寻 explorer.exe示例,因为Select-Object语句可以在管道找到结果的那一瞬终止管道。否则,Get-ChildItem会递归的遍历所有子目录然后匹配出你想要的结果。...
2024-01-10遍历JSON文件PowerShell
我试图在PowerShell中遍历以下JSON文件。如果没有专门命名顶部标签(例如17443和17444),由于我事先不知道它们的名称,就无法找到遍历数据的方法。我想为所有记录输出标签3、4和5(标题,名字,姓氏)。我该怎么做?{ "17443":{ "sid":"17443", "nid":"7728", "submitted":"1436175407", "data":{ ...
2024-01-10Powershell创建数组正确、更快的方法
通常当新的对象添加到一个数组中,根据经验你最担心其性能问题。下面第一个例子将告诉你一个错误的操作方法:Measure-Command { $ar = @() for ($x=0; $x -lt 10000; $x++) { $ar += $x }}在这个循环中,这个数组通过符号“+=”增加了许多新的对象。这样做会需要很长时间,因为在你改变其大...
2024-01-10PowerShell函数用Hash表传参实例
本文介绍在自定义PowerShell函数时,使用Hash表作为参数,它相当于将Hash表中的键当作参数名,而键的值当作参数值。先直接看看这个以Hash表作为参数赋值给函数的示例:$hash = @{ Path = $env:windir Filter = ‘*.ps1' Recurse = $true ErrorAction = ‘SilentlyContinue'}Get-ChildItem @hashGet-ChildItem...
2024-01-10Shell脚本中的“ -le”是什么?
我正在看这段代码。我想知道-le以下代码段的含义。if [ $stage -le 2 ]; then在一个问题中,它说-le代表<=字符串,但这是在Perl中。这里也一样吗?此外,我想知道该$stage变量是否自动更新。它已被初始化为0开始时,但后来如何递增?回答:-le检查左操作数的值是否小于或等于(<=)右操作数的值,如...
2024-01-10Powershell小技巧之编辑Hosts文件
某段时间你可能需要经常去更改hosts文件,硬编码一些dns。你得先找到这个文件,然后鼠标右键选择记事本,打开它。可是当保存时才发现,保存不了,原来需要管理员权限。此时你可以先把它保存到桌面,然后再拷贝回原来的位置,这样稍显麻烦。另外改完hosts文件,是为了更新dns,此时通常都会伴...
2024-01-10将WPK用于PowerShell GUI
我们创建了一些很棒的PowerShell脚本。但随着时间的推移,我们已经将脚本交给了非程序员。所以我们决定是时候为PowerShell简单易懂的GUI了。将WPK用于PowerShell GUI我看过詹姆斯布伦戴奇的9频道录像。他的视频在解释Window,Stack-Panel,Doc-Panel,Grid,Labels和Textboxes方面做得非常出色。 但是总共有60多个控件...
2024-01-10PowerShell小技巧之观察UNC路径
许多命令能支持UNC路径,但是UNC路径在脚本中看起来很奇怪。看看下面代码:PS> Test-Path -Path \\127.0.0.1\c$True它返回了真,证明UNC路径存在。接着改变当前的路径指向一个非文件系统路径接着测试:PS> cd hkcu:\ PS> Test-Path -Path \\127.0.0.1\c$False一样的路径但现在却获得了失败。这是因为UNC路径没有包...
2024-01-10如何使用PowerShell验证IP地址?
为了使用PowerShell验证IP地址,我们可以使用如下所示的几种方法。使用RegEx方法。使用类型转换方法。使用TypeCasting方法。在此方法中,我们使用System.Net方法类IPAddress来验证IP地址。[ipaddress]$IP = "192.168.0.1"上面的一个是有效的。让我们检查一下$IP存储在什么位置。PS C:\> $IPAddress : 16820416AddressFamily ...
2024-01-10如何在PowerShell函数中添加帮助?
当我们编写程序时,来自非编程领域的 人们经常期望获得与该程序相关的许多可能的帮助。当我们编写函数并声明参数时,不知道参数需要哪种输入的人们通常首先使用Get-Help命令搜索帮助,然后他们仅找到参数而不是其描述。例如,function TestFunct{ param( #16 Digit Application ID [pa...
2024-01-10PowerShell函数中接收管道参数实例
本文介绍在自定义PowerShell函数时,如何设置函数通过管道(Pipeline)接收输入参数。先看一个例子,用管道作为输入参数的函数:function Test-Pipeline { param( [Parameter(ValueFromPipeline=$true)] $InputObject ) process { “Working with $InputObject” }}使...
2024-01-10PowerShell面向对象编程基础知识总结
本文介绍PowerShell面向对象编程的基础知识,我们知道PowerShell里面的所有变量和输出都是对象,所以有必要在进行PowerShell编程时了解一下面向对象编程的基础知识。面向对象编程的引入主要是为了解决软件复杂化带来的维护等问题,早在20世纪60年代,面向对象就已经出现了。虽然C语言并不支持面向对...
2024-01-10PowerShell小技巧之启动远程桌面连接
以Windows Server 2012 R2为例,其实非常简单。先启用远程连接:(gwmi -class win32_terminalservicesetting -namespace "root\cimv2\terminalservices").setallowtsconnections(1)然后再启用几条防火墙规则即可,用PowerShell(需要管理员权限)更显其威武:PS> Get-NetFirewallRule -Name RemoteDesktop* | select DisplayName,...
2024-01-10如何在PowerShell中获取Java版本
我正在尝试在PowerShell中获取Java版本。版本字符串将打印到 ,因此我试图将其重定向到stdout并将其分配给字符串变量。我收到以下奇怪的错误:PS P:\> & java -version 2>&1java.exe : java version "1.7.0_25"At line:1 char:2+ & <<<< java -version 2>&1 + CategoryInfo : NotSpecified: (java version "1.7.0_25":Str...
2024-01-10如何在PowerShell中对输出进行排序?
要在PowerShell中对输出进行排序,您需要使用Sort-Object Pipeline cmdlet。在下面的示例中,我们将从Get-Process命令中检索输出,然后根据内存和CPU使用率对它们进行排序。示例Get-Process | Sort-Object WorkingSet | Select -First 10输出结果Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName-------...
2024-01-10如何使用PowerShell更改本地磁盘名称?
要使用PowerShell更改本地磁盘名称,我们可以使用Set-Volume命令。例如,我们的驱动器名称为F,其卷标为“新卷”,需要将其更改为“临时存储”,然后我们可以使用其现有的卷名或驱动器号来更改标签。要使用驱动器号更改卷名,Set−Volume −DriveLetter 'E' −NewFileSystemLabel 'Temporary Storage'要使用现有标...
2024-01-10