亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PowerShell > 正文

PowerShell中運行CMD命令的技巧總結(解決名稱沖突和特殊字符等問題)

2020-10-29 21:09:13
字體:
來源:轉載
供稿:網友

引言

我從老舊的 CMD.EXE 命令行換到優秀的 POWSERSHELL.EXE 已經有一段時間啦。您可能知道新的 Windows PowerShell 可以運行任何舊命令。不過有些舊命令的名稱或語法可能會產生問題。但這都不是事兒。

麻煩 1:名稱沖突

PowerShell 的 cmdlet 別名和舊命令的名稱有沖突是個常見的問題。比如說您喜歡的服務控制命令 SC.EXE。SC.EXE 非常靈活!我能理解您為什么喜歡它(不要為用 NET.EXE 管理服務找借口)。如果您想查看 SMB Server 服務的狀態,可以在 CMD.EXE 里這樣用:

復制代碼 代碼如下:

C:/>SC QUERY LANMANSERVER

SERVICE_NAME: LANMANSERVER
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 4 RUNNING
(STOPPABLE, PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0


如果您在 PowerShell 中嘗試同樣的事,會得到:
復制代碼 代碼如下:

PS C:/> SC QUERY LANMANSERVER
Set-Content : Access to the path 'C:/QUERY' is denied.
At line:1 char:1
+ SC QUERY LANMANSERVER
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (C:/QUERY:String) [Set-Content], UnauthorizedAccessException
+ FullyQualifiedErrorId : GetContentWriterUnauthorizedAccessError,Microsoft.PowerShell.Commands.SetContentCommand

因為 SC 是 Set-Content 的別名。它優先于 SC.EXE 文件。

方案 1A:使用 .EXE 擴展名

為了克服這個問題,您可以簡單地將 .EXE 擴展名包含進舊命令。這消除了歧義并使相同的命令在 CMD.EXE 和 PowerShell 里都能用。還可以清楚告訴使用您腳本的人這里用的是舊 .EXE 命令而非 PowerShell 別名。

復制代碼 代碼如下:
PS C:/> SC.EXE QUERY LANMANSERVER

SERVICE_NAME: LANMANSERVER
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 4 RUNNING
(STOPPABLE, PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0

方案 1B:使用 CMD /C

另一個辦法是把您的命令用引號括起讓 CMD.EXE 來運行。但這樣做沒啥效率,僅僅為了執行您的命令就得運行一個 CMD.EXE 實例。

復制代碼 代碼如下:
PS C:/> CMD /C "SC QUERY LANMANSERVER"

SERVICE_NAME: LANMANSERVER
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 4 RUNNING
(STOPPABLE, PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0

方案 1C:用等效的 PowerShell

很多情況下,可以用 PowerShell cmdlet 來代替您的舊命令。
例如這里您就可以直接使用 Get-Service:

復制代碼 代碼如下:

PS C:/> Get-Service LANMANSERVER | FL

Name : LANMANSERVER
DisplayName : Server
Status : Running
DependentServices : {Browser}
ServicesDependedOn : {SamSS, Srv}
CanPauseAndContinue : True
CanShutdown : False
CanStop : True
ServiceType : Win32ShareProcess


麻煩 2:PowerShell 的特殊字符

有時舊命令的參數使用的字符在 PowerShell 里有特殊意義。
比如您想讓某個目錄被所有用戶完全控制。在 CMD.EXE 里您可以這樣做:

復制代碼 代碼如下:

C:/>ICACLS.EXE C:/TEST /GRANT USERS:(F)
processed file: C:/TEST
Successfully processed 1 files; Failed processing 0 files

在 CMD.EXE 做這些沒問題,但如果你在 PowerShell 運行就會報錯:
復制代碼 代碼如下:

PS C:/> ICACLS.EXE C:/TEST /GRANT USERS:(F)
The term 'F' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling
of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:34
+ ICACLS.EXE C:/TEST /GRANT USERS:(F)
+ ~
+ CategoryInfo : ObjectNotFound: (F:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundExceptionn

試圖給名字以 $ 結尾的電腦對象授權時也會引起一個類似的錯誤。
復制代碼 代碼如下:

PS C:/> ICACLS.EXE C:/TEST /GRANT COMPUTERNAME$:(F)
At line:1 char:39
+ ICACLS.EXE C:/TEST /GRANT COMPUTERNAME$:(F)
+ ~~
Invalid variable reference. '$' was not followed by a valid variable name character. Consider using ${} to delimit the
name.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : InvalidVariableReference

這個問題是因為括號和美元符在 PowerShell 中都有特殊意義。例如大括號之類常用字符也會引發相似的沖突。也有幾種不同的方案來解決這個問題。

方案 2A:使用 CMD /C

和第一個問題一樣,你可以引號括起您的命令交給 CMD.EXE 來處理。先不考慮效率,PowerShell 不會去解析引號里的字符串,這樣就能正常工作。

復制代碼 代碼如下:

PS C:/> CMD.EXE /C "ICACLS.EXE C:/TEST /GRANT USERS:(F)"
processed file: C:/TEST
Successfully processed 1 files; Failed processing 0 files

方案 2B:使用 PowerShell 的轉義字符

對于這個方案,您必須先知道使用的字符哪些對 PowerShell 有特殊意義。然后在它們每一個前面加上個反引號(`),它就是 PowerShell 的轉義字符。這個方案的主要問題是你必須知道哪些字符需要轉義,這讓讀寫您的腳本更困難。
我們的例子里,你需要處理 ( 和 ) 這兩個字符:

復制代碼 代碼如下:

PS C:/> ICACLS.EXE C:/TEST /GRANT USERS:`(F`)
processed file: C:/TEST
Successfully processed 1 files; Failed processing 0 files


方案 2C:使用 PowerShell v3 的新語法“亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内揄拍国内精品| 国产精品免费久久久久久| 日本中文字幕成人| 日韩在线高清视频| 伊人久久久久久久久久久| 久久亚洲欧美日韩精品专区| 久久久精品日本| 国产精品国模在线| 青草青草久热精品视频在线网站| 欧美成人三级视频网站| 日韩在线播放av| 91精品国产综合久久香蕉最新版| 国产aaa精品| 国产精品成人va在线观看| 国产一区二区日韩| 亚洲成人av在线| 亚洲国产精品国自产拍av秋霞| 亚洲欧美变态国产另类| 中文字幕精品www乱入免费视频| 97av在线播放| 国产午夜精品免费一区二区三区| 欧美老女人性视频| 中文字幕日韩在线观看| 中文.日本.精品| 久久99久久99精品中文字幕| 国产一区二区动漫| 国产91精品青草社区| 欧美激情视频网址| 国产午夜精品全部视频播放| 亚洲性夜色噜噜噜7777| 国产在线播放91| 久久久久久久久久久久久久久久久久av| 欧美激情伊人电影| 一夜七次郎国产精品亚洲| 国产亚洲在线播放| 成人免费网站在线看| 久久精品99久久香蕉国产色戒| 欧美一区二区大胆人体摄影专业网站| 欧美一级淫片播放口| 都市激情亚洲色图| 国产91精品久久久久久| 91在线精品视频| 97在线观看视频国产| 亚洲国产成人91精品| 国产精品爱啪在线线免费观看| 欧洲亚洲女同hd| 亚洲精品永久免费精品| 少妇精69xxtheporn| 国产精品中文字幕在线| 91高清免费视频| 国产mv免费观看入口亚洲| 激情懂色av一区av二区av| 日韩精品免费在线视频| 5252色成人免费视频| 久久久久久久久久久久av| 久久国产精品久久国产精品| 精品久久久久久中文字幕一区奶水| 国产精品成人av性教育| 最新69国产成人精品视频免费| 久久精品国产成人| 久久久久久亚洲精品| 国产精品久久久久久久一区探花| 91在线精品视频| 国产一区二区日韩| 中文字幕免费国产精品| 日韩极品精品视频免费观看| 成人欧美在线观看| 国产精品中文字幕在线| 伊人久久综合97精品| 国产精品成久久久久三级| 欧美有码在线观看视频| 精品无码久久久久久国产| 热久久免费国产视频| 久久影视免费观看| 毛片精品免费在线观看| 国产欧美 在线欧美| 福利一区福利二区微拍刺激| 国产精品海角社区在线观看| 欧美大成色www永久网站婷| 亚洲精品久久久一区二区三区| 欧美伊久线香蕉线新在线| 久久久在线观看| 久热精品在线视频| 57pao成人永久免费视频| 美日韩精品免费视频| 亚洲黄页视频免费观看| 欧美精品在线免费播放| 欧美成人午夜激情在线| 久热精品视频在线观看一区| 亚洲三级 欧美三级| 久久成人综合视频| 亚洲一区二区精品| 欧美猛交ⅹxxx乱大交视频| 亚洲图片在区色| 精品小视频在线| 亚洲跨种族黑人xxx| 国产视频在线一区二区| 欧美日韩综合视频| 欧美国产日韩一区二区三区| 亚洲а∨天堂久久精品喷水| 欧美激情第99页| 日本亚洲欧洲色α| 亚洲免费伊人电影在线观看av| 亚洲一区第一页| 一区二区av在线| 国内揄拍国内精品| 国产精品狠色婷| 日韩美女视频在线观看| 国产亚洲精品日韩| 日韩一区二区三区国产| 国产精品热视频| 蜜月aⅴ免费一区二区三区| 成人免费大片黄在线播放| 91热福利电影| 少妇高潮久久77777| 日韩精品免费在线视频观看| 日本一区二区在线免费播放| 欧美美女15p| 欧美日韩免费网站| 日韩精品中文字幕久久臀| 成人性生交xxxxx网站| 欧美韩日一区二区| 最新国产精品亚洲| 日韩av大片在线| 亚洲精品久久久一区二区三区| 亚洲自拍小视频免费观看| 成人免费高清完整版在线观看| 国内成人精品视频| 91亚洲精品久久久久久久久久久久| 亚洲最新视频在线| 97人洗澡人人免费公开视频碰碰碰| 成人免费视频在线观看超级碰| 欧美色播在线播放| 久久久久国产精品一区| 久久精品国产一区二区电影| 亚洲电影成人av99爱色| 操人视频在线观看欧美| 久久这里有精品视频| 日韩国产在线看| 伊人久久大香线蕉av一区二区| 57pao国产精品一区| 亚洲第一区在线观看| 亚洲国产欧美一区二区三区久久| 欧美视频国产精品| 亚洲热线99精品视频| 亚洲成avwww人| 国产精品久久av| 国产一区二区三区三区在线观看| 中文字幕精品—区二区| 欧美在线视频播放| 欧美大码xxxx| 懂色av中文一区二区三区天美| 亚洲人成网站在线播| 97**国产露脸精品国产| 中文字幕亚洲欧美日韩高清| 日本成人在线视频网址| 久久久成人精品视频| 日韩精品久久久久久久玫瑰园| 欧美在线国产精品| 亚洲乱码国产乱码精品精| 国产精品亚洲аv天堂网| 激情懂色av一区av二区av| 国产精品入口福利| 亚洲精品白浆高清久久久久久|