-
使用專(zhuān)用的變量命令 為了管理變量,powershell提供了五個(gè)專(zhuān)門(mén)管理變量的命令Clear-Variable,Get-Variable,New-Variable,Remove-Variable,Set-Variable。因?yàn)樘摂M驅(qū)動(dòng)器variable:的存在,clear,remove,set打頭的命令可以被代替。但是Get-Variable,New-Variable。卻非常有用new-variable可以在定義變量時(shí),指定變量的一些其它屬性,比如訪(fǎng)問(wèn)權(quán)限。同樣Get-Variable也可以獲取這些附加信息。 變量寫(xiě)保護(hù) 可以使用New-Variable 的option選項(xiàng) 在創(chuàng)建變量時(shí),給變量加上只讀屬性,這樣就不能給變量重新賦值了。 PS C:\test> New-Variable num -Value 100 -Force -Option readonly查看全部
-
刪除變量 因?yàn)樽兞繒?huì)在powershell退出或關(guān)閉時(shí),自動(dòng)清除。一般沒(méi)必要?jiǎng)h除,但是你非得刪除,也可以象刪除文件那樣刪除它。 PS C:\test> Test-Path variable:value1 True PS C:\test> del variable:value1 PS C:\test> Test-Path variable:value1 False查看全部
-
驗(yàn)證變量是否存在 驗(yàn)證一個(gè)變量是否存在,仍然可以象驗(yàn)證文件系統(tǒng)那樣,使用cmdlet Test-Path。為什么?因?yàn)樽兞看嬖谧兞框?qū)動(dòng)器中。 PS C:\test> Test-Path variable:value1 True PS C:\test> Test-Path variable:value2 True PS C:\test> Test-Path variable:valueUnkonw False查看全部
-
查找變量 因?yàn)橛刑摂M驅(qū)動(dòng)variable:的存在,可以象查找文件那樣使用通配符查找變量。例如要查詢(xún)以value打頭的變量名。 PS C:\test> ls variable:value* Name Value ---- ----- value1 20 value2 10查看全部
-
查看正在使用的變量 Powershell將變量的相關(guān)信息的記錄存放在名為variable:的驅(qū)動(dòng)中。如果要查看所有定義的變量,可以直接遍歷variable: PS C:\test> ls variable: Name Value ---- ----- "I"like $ mossfly $ cls ? True ^ cls查看全部
-
交換變量的值 要交換兩個(gè)變量的值,傳統(tǒng)的程序語(yǔ)言至少需要三步,并且還需定義一個(gè)中間臨時(shí)變量。 $Value1 = 10 $Value2 = 20 $Temp = $Value1 $Value1 = $Value2 $Value2 = $Temp 在powershell中,交換兩個(gè)變量的值,這個(gè)功能變得非常簡(jiǎn)單。 PS C:\test> $value1=10 PS C:\test> $value2=20 PS C:\test> $value1,$value2=$value2,$value1 PS C:\test> $value1 20 PS C:\test> $value2 10查看全部
-
給多個(gè)變量同時(shí)賦值 賦值操作符不僅能給一個(gè)變量賦值,還可以同時(shí)給多個(gè)變量賦相同的值。 PS C:\test> $a=$b=$c=123查看全部
-
賦值和返回值 賦值操作符為“=”,幾乎可以把任何數(shù)據(jù)賦值給一個(gè)變量,甚至一條cmdlet命令 ,為什么,因?yàn)镻owershell支持對(duì)象,對(duì)象可以包羅萬(wàn)象。 PS C:\test> $item=Get-ChildItem . PS C:\test> $item Directory: C:\test Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 2011/11/23 17:25 ABC -a--- 2011/11/24 18:30 67580 a.html -a--- 2011/11/24 20:04 26384 a.txt查看全部
-
選擇變量名 在powershell中變量名均是以美元符”$”開(kāi)始,剩余字符可以是數(shù)字、字母、下劃線(xiàn)的任意字符,并且powershell變量名大小寫(xiě)不敏感($a和$A 是同一個(gè)變量)。 某些特殊的字符在powershell中有特殊的用途,一般不推薦使用這些字符作為變量名。當(dāng)然你硬要使用,請(qǐng)把整個(gè)變量名后綴用花括號(hào)括起來(lái)。 PS C:\test> ${"I"like $}="mossfly" PS C:\test> ${"I"like $} mossfly查看全部
-
powershell 不需要顯示地去聲明,可以自動(dòng)創(chuàng)建變量,只須記住變量的前綴為$. 創(chuàng)建好了變量后,可以通過(guò)變量名輸出變量,也可以把變量名存在字符串中。但是有個(gè)例外單引號(hào)中的字符串不會(huì)識(shí)別和處理變量名。查看全部
-
一定要注意:powershell中單引號(hào)和雙引號(hào)起到的作用是不一樣的。 單引號(hào)的內(nèi)容是string,直接輸出 雙引號(hào)的內(nèi)容可以是指令,可以執(zhí)行查看全部
-
Powershell調(diào)用入口的優(yōu)先級(jí) 別名:控制臺(tái)首先會(huì)尋找輸入是否為一個(gè)別名,如果是,執(zhí)行別名所指的命令。因此我們可以通過(guò)別名覆蓋任意powershell命令,因?yàn)閯e名的優(yōu)先級(jí)最高。 函數(shù):如果沒(méi)有找到別名,會(huì)繼續(xù)尋找函數(shù),函數(shù)類(lèi)似別名,只不過(guò)它包含了更多的powershell命令。因此可以自定義函數(shù)擴(kuò)充cmdlet 把常用的參數(shù)給固化進(jìn)去。 命令:如果沒(méi)有找到函數(shù),控制臺(tái)會(huì)繼續(xù)尋找命令,即cmdlet,powershell的內(nèi)部命令。 腳本:沒(méi)有找到命令,繼續(xù)尋找擴(kuò)展名為“.ps1”的Powershell腳本。 文件:沒(méi)有找到腳本,會(huì)繼續(xù)尋找文件,如果沒(méi)有可用的文件,控制臺(tái)會(huì)拋出異常。 The term ‘now’ is not recognized as the name of a cmdlet, function, script file, or operable program. Chec g of the name, or if a path was included, verify that the path is correct and try again. At line:1 char:4 + now <<<< + CategoryInfo : ObjectNotFound: (now:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException查看全部
-
關(guān)于腳本 腳本和批處理都屬于偽可執(zhí)行文件,它們只是包含了若干命令行解釋器能夠解釋和執(zhí)行的命令行代碼。 執(zhí)行批處理文件 批處理是擴(kuò)展名為”.bat”的文本文件,它可以包含任何cmd控制臺(tái)能夠處理的命令。當(dāng)批處理文件被打開(kāi),Cmd控制臺(tái)會(huì)逐行執(zhí)行每條命令。那Powershell能夠直接執(zhí)行批處理嗎? 將下列命令保存為ping.bat @echo off echo batch File Test pause Dir %windir%/system 然后執(zhí)行ping 屏幕會(huì)打印ping命令幫助,說(shuō)明調(diào)用的ping cmd 而不是ping.bat。 改為: PS C:\PS> ./ping batch File Test Press any key to continue . . . 這時(shí)運(yùn)行的是批處理。 通過(guò)cmd進(jìn)入cmd控制臺(tái)輸入ping發(fā)現(xiàn)執(zhí)行的不是ping命令,而是直接運(yùn)行ping.bat ,也就是說(shuō)可以通過(guò).bat 覆蓋cmd命令。這種機(jī)制很危險(xiǎn),如果有人侵入電腦,并將系統(tǒng)內(nèi)部命令篡改成自己批處理,那就太悲劇了。 這種命令與腳本的混淆不會(huì)發(fā)生在powershell中,因?yàn)閜owershell有更安全的機(jī)制。 執(zhí)行powershell腳本 Powershell擁有自己的腳本,擴(kuò)展名為“.ps1” PS C:\PS> echo "dir;Get-PSProvider;help dir" >test.ps1 PS C:\PS> Get-Content ./test.ps1 dir;Get-PSProvider;help dir PS C:\PS> ./test.ps1 初次執(zhí)行腳本時(shí),可能會(huì)碰到一個(gè)異常: File ” C:\PS\test.ps1″ cannot be loaded because the execution of scripts is disabled on this system. Please see “get-help about_signing” for more details. At line:1 char:10 + .test.ps1 <<<< 這是powershell的默認(rèn)安全設(shè)置禁用了執(zhí)行腳本,要啟用這個(gè)功能需要擁有管理員的權(quán)限。查看全部
-
在Powershell中設(shè)置別名的確方便快捷,但是在設(shè)置別名的過(guò)程中并設(shè)置參數(shù)的相關(guān)信息。盡管別名會(huì)自動(dòng)識(shí)別參數(shù),但是如何把經(jīng)常使用的參數(shù)默認(rèn)設(shè)定在別名里面呢?例如Test-Connection -Count 2 -ComputerName,讓-“-Count 2″ 固化在別名中。 這時(shí)簡(jiǎn)單的別名無(wú)法完成上述需求,可以通過(guò)函數(shù)來(lái)完成它,并且一旦把函數(shù)拉過(guò)來(lái),定義別名會(huì)變得更加靈活。 PS C:\PS> function test-conn { Test-Connection -Count 2 -ComputerName $args} PS C:\PS> Set-Alias tc test-conn PS C:\PS> tc localhost Source Destination IPV4Address IPV6Address Bytes Time(ms) ------ ----------- ----------- ----------- ----- -------- test-me-01 localhost 127.0.0.1 ::1 32 0 test-me-01 localhost 127.0.0.1 ::1 32 0 有了函數(shù)牽線(xiàn),別名可以完成更高級(jí)更強(qiáng)大的功能,其中$args為參數(shù)的占位符,經(jīng)測(cè)試,發(fā)現(xiàn)這個(gè)占位符必須以$args命名,否則不能識(shí)別,會(huì)拋出異常查看全部
-
保存自己的別名 可以使用Export-Alias將別名導(dǎo)出到文件,需要時(shí)再通過(guò)Import-Alias導(dǎo)入。但是導(dǎo)入時(shí)可能會(huì)有異常,提示別名已經(jīng)存在無(wú)法導(dǎo)入: PS C:\PS> Import-Alias alias.ps1 Import-Alias : Alias not allowed because an alias with the name 'ac' already exists. At line:1 char:13 + Import-Alias <<<< alias.ps1 + CategoryInfo : ResourceExists: (ac:String) [Import-Alias], SessionStateException + FullyQualifiedErrorId : AliasAlreadyExists,Microsoft.PowerShell.Commands.ImportAliasCommand 這時(shí)可以使用Force強(qiáng)制導(dǎo)入。 PS C:\PS> Export-Alias alias.ps1 PS C:\PS> Import-Alias -Force alias.ps1查看全部
舉報(bào)
0/150
提交
取消