一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - PowerShell - Powershell實現編寫和運行腳本

Powershell實現編寫和運行腳本

2020-07-05 10:55腳本之家 PowerShell

本文為那些對學習 Windows PowerShell 命令行和腳本編寫環境感興趣的系統管理員提供了資源。也請告訴我們本網站如何才能對您更有用處。

一個Powershell僅僅是一個包含Powershell代碼的文本文件。如果這個文本文件執行,Powershell解釋器會逐行解釋并執行它的的語句。Powershell腳本非常像以前CMD控制臺上的批處理文件。您可以通過非常簡單的文本編輯工具創建Powershell腳本。

通過重定向創建腳本

如果您的腳本不是很長,您甚至可以直接在控制臺中要執行的語句重定向給一個腳本文件。

?
1
2
3
PS E:> '"Hello,Powershell Script"' > MyScript.ps1
PS E:> .\MyScript.ps1
Hello,Powershell Script

這樣有個缺點,就是您的代碼必須放在閉合的引號中。這樣的書寫方式一旦在腳本內部也有引號時,是一件很痛苦的事。甚至您還可能希望在腳本中換行。下面的Here-strings例子不錯,也就是將腳本文件通過@‘ '@閉合起來。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
PS E:> @'
>> Get-Date
>> $Env:CommonProgramFiles
>> #Script End
>> "files count"
>> (ls).Count
>> #Script Really End
>>
>> '@ > myscript.ps1
>>
PS E:> .MyScript.ps1
 
2012年4月27日 8:15:10
C:\Program Files\Common Files
files count
20

Here-String以 @‘開頭,以'@結束.任何文本都可以存放在里面,哪怕是一些特殊字符,空號,白空格。但是如果您不小心將單引號寫成了雙引號,Powershell將會把里面的變量進行解析。

通過編輯器創建腳本

其實非常方便的還是最地道的文版編輯器Notepad,您可以直接在Powershell控制臺中打開Notepad

?
1
2
PS E:> notepad.exe .\MyScript.ps1
PS E:> notepad.exe

編輯完記得保存即可。

運行Powershell腳本

當您的腳本編寫成功后您可能第一次會像下面的方式運行它,也就是只輸入腳本的文件名,會報錯。

?
1
PS E:> MyScript.ps1

無法將“MyScript.ps1”項識別為 cmdlet、函數、腳本文件或可運行程序的名稱。請檢查名稱的拼寫,如果包括
路徑,請確保路徑正確,然后重試。
所在位置 行:1 字符: 13
+ MyScript.ps1 < <<<
+ CategoryInfo : ObjectNotFound: (MyScript.ps1:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

Suggestion [3,General]: 未找到命令 MyScript.ps1,但它確實存在于當前位置。Windows PowerShell 默認情況
下不從當前位置加載命令。如果信任此命令,請改為鍵入 ".MyScript.ps1"。有關更多詳細信息,請參閱 "get-h
elp about_Command_Precedence"。
除非您使用相對路徑,或者絕對路徑

?
1
2
3
4
5
6
7
8
9
10
11
12
13
PS E:> .\MyScript.ps1
 
2012年4月27日 8:33:03
C:\Program Files\Common Files
files count
20
 
PS E:> E:MyScript.ps1
 
2012年4月27日 8:33:11
C:\Program Files\Common Files
files count
20

執行策略限制

Powershell一般初始化情況下都會禁止腳本執行。腳本能否執行取決于Powershell的執行策略。

?
1
PS E:> .\MyScript.ps1

無法加載文件 E:MyScript.ps1,因為在此系統中禁止執行腳本。有關詳細信息,請參閱 "get-help about_sign
ing"。
所在位置 行:1 字符: 15
+ .MyScript.ps1 < <<<
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : RuntimeException
只有管理員才有權限更改這個策略。非管理員會報錯。

查看腳本執行策略,可以通過:

?
1
PS E:> Get-ExecutionPolicy

更改腳本執行策略,可以通過

?
1
2
3
PS E:> Get-ExecutionPolicy
Restricted
PS E:> Set-ExecutionPolicy UnRestricted

執行策略更改

執行策略可以防止您執行不信任的腳本。更改執行策略可能會使您面臨 about_Execution_Policies
幫助主題中所述的安全風險。是否要更改執行策略?
[Y] 是(Y) [N] 否(N) [S] 掛起(S) [?] 幫助 (默認值為“Y”): y
腳本執行策略類型為:Microsoft.PowerShell.ExecutionPolicy
查看所有支持的執行策略:

PS E:> [System.Enum]::GetNames([Microsoft.PowerShell.ExecutionPolicy])
Unrestricted
RemoteSigned
AllSigned
Restricted
Default
Bypass
Undefined
Unrestricted:權限最高,可以不受限制執行任何腳本。
Default:為Powershell默認的策略:Restricted,不允許任何腳本執行。
AllSigned:所有腳本都必須經過簽名才能在運行。
RemoteSigned:本地腳本無限制,但是對來自網絡的腳本必須經過簽名。

關于Powershell腳本的簽名在后續會談到。

像命令一樣執行腳本

怎樣像執行一個命令一樣執行一個腳本,不用輸入腳本的相對路徑或者絕對路徑,甚至*.ps1擴展名。
那就將腳本的執行語句保存為別名吧:

?
1
2
3
4
5
6
7
PS E:> Set-Alias Invok-MyScript .MyScript.ps1
PS E:> Invok-MyScript
 
2012年4月28日 0:24:22
C:\Program Files\Common Files
files count
20

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 四川女人偷人真实视频 | 成人精品一区久久久久 | 免费一看一级欧美 | 日本人交换乱理伦片 | 好紧好爽范冰冰系列 | 无码人妻精品一区二区蜜桃在线看 | 男人和女人上床 | 日韩欧美高清 | 肥胖女人一级毛片 | 精品国产成人AV在线看 | poronovideos暴力另类 | 欧美乱强 | 向日葵视频app下载18岁以下勿看 | 亚洲精品一区二区三区中文字幕 | 俄罗斯激情性孕妇孕交大全 | 久久亚洲精品AV无码四区 | 日本公与妇中文在线 | 忘忧草高清 | 骚虎网站在线观看 | 日本 在线播放 | 成人一区二区免费中文字幕 | 亚洲国产精品网 | 日本xx高清视频免费观看 | 久久婷婷丁香五月色综合啪免费 | 国产精品成人免费观看 | 四虎影院新网址 | 精品综合久久久久久8888 | 精品无人区麻豆乱码无限制 | 亚洲色图影院 | 国产 日韩 一区 | 日韩无砖2021特黄 | 久久免费观看视频 | 沉香如屑西瓜视频免费观看完整版 | 精品国产福利一区二区在线 | 国产精品女主播大秀在线 | 天天摸天天碰色综合网 | 久久久久青草大香线综合精品 | 日韩手机在线观看 | 高清一区二区 | 国内精品国语自产拍在线观看55 | 久草在线福利视频在线播放 |