Welcome 微信登录

首页 / 编程脚本

PowerShell Continue语句使用示例

PowerShell Continue语句使用示例

当你在一个循环的内部使用 “Continue”语句时,可以跳过循环的当前迭代,继续执行下一个迭代。如果使用了”Break”语句,则会跳过剩余的所有迭代循环。这样就引发了一个问题,在一个多层嵌套循环中,哪一个循环会被影响。默认情况下,”Continue”只会影响到内层循环,但是你也可以用”Continue” 和 “Break” 指向外层循环的某一个标签。:outerForeach ($element in (1..10)){for ($x = 1000; $...
PowerShell实现参数互斥示例

PowerShell实现参数互斥示例

在PowerShell的函数中如果想让参数互斥,可以使用 “ParameterSetName”属性将一个parameter属性定义在不同的参数或着参数集合中。很多人可能没有留意,在PowerShell的函数中,我们可以将多个参数属性定义在同一个参数名上,这样配合mandatory可以让一个参数在某个场景下是强制的,在另外的场景下则是可选的。function Test-ParameterSet{[CmdletBinding(DefaultParameterS...
PowerShell中使用.NET将程序集加入全局程序集缓存

PowerShell中使用.NET将程序集加入全局程序集缓存

通常情况下,将程序集(Assembly)加入全局程序集缓存(GAC,Global Assembly Cache),可以使用GacUtil工具。只要使用/i参数,就可以把指定路径的程序集添加进GAC了。不过由于GacUtil并不是.Net Framework的一部分,而是和Windows SDK一起发布的,这就导致了机器中安装了.Net,却可能找不到GacUtil的情况。在PowerShell中,我们可以直接使用.Net的类库来搞定这件事,而不需要通过Gac...
PowerShell中获取当前运行脚本路径的方法

PowerShell中获取当前运行脚本路径的方法

在运行脚本的时候,有时候需要通过脚本文件所在位置的相对路径来做一些事,比如执行另一个脚本。以前在CMD时代,可以通过%~dp0来获取脚本所在的文件夹,那在PowerShell中要怎么做呢?很简单,通过内置的$MyInvocation变量:复制代码 代码如下:$x = $MyInvocation.MyCommand.Definition此时$x的值是当前运行中的脚本的绝对路径,再用Split-Path取它的父路径就可以了:复制代码 代码如下:$x = Spl...
PowerShell中的函数重载示例

PowerShell中的函数重载示例

在PowerShell中,我们可以使用Function关键字来定义一个函数,比如:Function Get-Data { Param ([int] $data = -1 ) return $data;}这个名为Get-Data的函数接收一个int类型的参数$data,直接将其返回。那么,我同时还需要一个接收string类型的Get-Data函数怎么办?方法比较奇怪,至少和传统的C++之类的语言不同。在PowerShell中定义重载函数,需要指定参数所属的P...
PowerShell批量文件重命名操作实例

PowerShell批量文件重命名操作实例

总算发现PowerShell相对于CMD来说实用的地方了。事情是这样的,我下载了一些美剧(抱歉,看完会删的),通常文件名都比较长,包含了很多我不需要的信息,,比如:复制代码 代码如下:别对我撒谎.Lie.To.Me.S02E11.Chi_Eng.HDTVrip.720×396-YYeTs人人影视V2.rmvb别对我撒谎.Lie.To.Me.S02E12.Chi_Eng.HDTVrip.720×396-YYeTs人人影视.rmvb别对我撒谎.Lie.To.M...
Powershell脚本的4种执行权限介绍

Powershell脚本的4种执行权限介绍

Restricted——默认的设置, 不允许任何script运行AllSigned——只能运行经过数字证书签名的scriptRemoteSigned——运行本地的script不需要数字签名,但是运行从网络上下载的script就必须要有数字签名Unrestricted——允许所有的script运行windows默认不允许任何脚本运行,你可以使用"Set-ExecutionPolicy"cmdlet来改变的你PowerShell环境。例如,你可以使用如下命令让...
PowerShell启用winrm失败:拒绝访问 0x80070005 -2147024891

PowerShell启用winrm失败:拒绝访问 0x80070005 -2147024891

PowerShell远程管理很强大,开启远程访问本来一行命令即可,但不是永远都顺风顺水。今天就分享一些网友们的总结,真心希望某条可解燃眉之急。声明:以下内容来自QQ群友集体智慧,由老传整理。启用winrm失败,报拒绝访问,修复一例。关键字 winrm 拒绝访问 0x80070005 -2147024891总结人:老传,,爱powershell,就【猪懂傻改】地分享。今天群内讨论了的启用winrm时,拒绝访问的问题。我们一起研究找到了问题结症所在,总结检查步...
PowerShell查看本机文件关联程序和默认打开程序的方法

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

上次转载的一篇文章《PowerShell查看打开文件的默认应用程序》,它的亮点是调用了windows api,思路很独特,但是未必实用。后来@J在原文中评论,说assoc + ftype更方便。那么assoc 和 ftype是个神马东西,我简单描述下。assoc 和 ftype是windows系统上cmd.exe中两个命令:前者assoc 可以返回文件扩展名(比如.mp3)和系统对该扩展名本身的命名(比如WMP11.AssocFile.MP3)。后者 ft...
PowerShell脚本反引号用法实例:随时随地给代码换行

PowerShell脚本反引号用法实例:随时随地给代码换行

为了增强可读性,大家都喜欢将很长的本来可以一行写完的脚本分割成多行。复制代码 代码如下:Get-Service | Where-Object { $_.Status -eq "Running" }Get-Service |Where-Object { $_.Status -eq "Running" }在管道符号结束以后,我们可以直接换行。有时遇到花括号时,也可以非常安全的换行:复制代码 代码如下:Get-Service |Where-Object {$_....
PowerShell 数组的多种录入方法

PowerShell 数组的多种录入方法

这个需求是小骆驼发起的。感谢 微软云方案交流 236804566 这个高端群的用户贡献。我们首先看看一个标准的数组是怎么录入的PS D:> $arr= "adf","asdfer","sredsaf" PS D:> $arradfasdfersredsaf这里需要注意的是,双引号和逗号的分隔。不得不说,这是最简单的录入方式,但输入方式不太友好,需要用户自己去改PowerShell脚本为了便于用户交互,我写了下面的一个范例$changdu = R...
PowerShell String对象方法小结

PowerShell String对象方法小结

从之前的章节中,我们知道PowerShell将一切存储在对象中,那这些对象中包含了一系列中的称之为方法的指令。默认文本存储在String对象中,它包含了许多非常有用的处理文本的命令。例如,要确定一个文件的扩展名,可以使用LastIndexOf()获取最后一个字符“.”的位置,继续使用Substring()获取扩展名子串。PS> $path = "C:prefs.js" PS> $path.Substring( $path.LastIndexOf...
<< 71 72 73 74 75 76 77 78 79 80 >>