麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > PowerShell > 正文

PowerShell入門教程之Cmd命令與PowerShell命令相互調用的方法

2020-05-30 20:17:36
字體:
來源:轉載
供稿:網友

     單獨使用一種腳本來完成一項任務是理想的狀態,而現實的情況往往是,因為歷史原因、或者團隊組成,你不得不將多種腳本或者程序組合在一起,來完成某項任務。本文的討論范圍是Cmd命令與PowerShell命令之間的組合與調用。

     毋庸置疑,Cmd命令與PowerShell命令之間的調用有兩個方向。即在Cmd命令中調用PowerShell的命令,以及在PowerShell腳本中調用Cmd命令。需要說明的是,這里的調用分兩個層次:一、簡單的在其中一個的環境中執行另外一個命令,完成部分工作;二、在其中一個的執行上下文中調用另一個的命令,并根據返回結果來選擇后面的邏輯。

在Cmd命令中調用PowerShell命令

如果只是在Cmd命令中調用PowerShell的命令,而不需要記錄PowerShell的返回結果,是非常簡單的。可以直接在Cmd命令或者腳本中執行類似一下命令:
代碼如下:
powershell echo "Hello"

執行上述命令的時候,Cmd是把PowerShell當成一個應用程序來執行的。      

在Cmd命令中調用PowerShell的命令并獲得返回值的可行方法并不多。這是因為,Cmd命令對于結果的處理往往需要借助于文件讀寫,很少有機會在各個命令之間傳遞數據,并保存中間結果的。For命令是其中最好的一個方法,它的指向方法如下:
代碼如下:
for /f  %i in ('powershell echo "Hello"') do (set a=%i)

以上命令的執行結果是%a%被賦值為Hello。當然,如果只是簡單賦值,就沒有必要這樣大費周折。調用PowerShell的命令,肯定是看中了它強大的編程能力,比如自定義的排序等等。

  我遇到的一個實際的例子是這樣的:文件服務器上有一個目錄,里邊放著一些按年月命名的目錄。因為這個目錄結構已經確定下來了,而且很多組都在使用,不能隨便改動。我們有一個任務就是每天定時去最新的年月目錄里拷貝build。麻煩的是,第一、文件夾時按照12.1、12.2。。。12.10、12.11、12.12、13.1。。。這樣命名的;第二、從時間上沒法找,因為最新的目錄不是在月底,而是在月中的某一天生成的。以Cmd命令有限的編程能力,肯定是不好解決這個問題的。我最終寫了一個PowerShell的腳本文件,在Cmd的腳本中調用,終于解決了這個問題。

在PowerShell命令中調用Cmd命令

       由于PowerShell強大的管道功能,在PowerShell命令或者腳本中調用Cmd命令并獲得返回結果是件很容易的事情,是否獲得結果對于調用Cmd命令的方式也沒有影響。請看如下示例:
代碼如下:
cmd /c dir
$a = (cmd /c dir)
$a

以上示例中,第1行的執行結果,和后兩行的執行結果是一樣的。不同點是,后者的執行結果被保存了下來,前者只是將結果打印在屏幕上。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成年性羞羞视频免费观看 | 国产精品99久久99久久久二 | 色999国产| 国产一级伦理片 | 成人免费一区二区三区在线观看 | 日韩欧美高清一区 | 国产成人高清成人av片在线看 | 毛片成人网 | 国产伊人色| 日韩高清影视 | 少妇淫片免费一级毛片 | 91美女视频在线观看 | 久久久久久久久久久久久久国产 | 久草在线观看资源 | 成人免费毛片在线观看 | 成码无人av片在线观看网站 | 九色91视频| 亚洲性综合网 | 精品久久久一二三区播放播放播放视频 | 在线播放免费视频 | 国产一区二区高清在线 | 精品亚洲视频在线观看 | 久草手机视频在线观看 | 日韩av电影免费看 | 亚洲精品tv久久久久久久久久 | 在线看三级| 国产午夜电影 | 55夜色66夜色国产精品视频 | 免费激情视频网站 | 香蕉黄色网 | 国产欧美在线一区二区三区 | 欧美毛片 | 国产午夜亚洲精品理论片大丰影院 | 国产精品一 | 久久久成人999亚洲区美女 | 91在线视频在线观看 | 一本色道久久99精品综合蜜臀 | 国产成人高清在线观看 | 欧美成人理论片乱 | 免费在线成人网 | 亚洲国产精品久久久久制服红楼梦 |