1. 程式人生 > >Powershell輸入和輸出的探索與應用

Powershell輸入和輸出的探索與應用

這裡的輸入和輸出是指控制檯可顯示的輸入輸出。適用於人機互動,沒有人看的輸入輸出也就沒有意義了。

我們開啟的Powershell.exe和PowerShell ISE以及其他非微軟的應用程式,其使用PowerShell時會呼叫PowerShell的引擎。應用程式也稱為宿主應用程式,和我們進行互動的即是那些程式。與我們互動的方式和行為方式都是由宿主應用程式決定的。

輸入命令:Read-Host

1.提示資訊後面自動加了個冒號;

2.使用者鍵入任何資訊都被作為該命令的返回結果;

3.可以把鍵入的資訊傳遞給一個變數,例如:

4.如何實現圖形化輸入框:

可以呼叫.Net Framework中的Microsoft.VisualBasic元件,該元件包含了圖形化輸入框:

第一條命令是載入元件,可載入一次,多次使用其中的輸入框(第二條命令);其中第二條命令中InputBox()方法中的三個引數,

第一個是提示框中的文字資訊;

第二個引數是提示對話方塊的標題;

第三個可以空白或填寫想要顯示的輸入框預設值。

輸出命令:Write-Host/Output等等

當需要展示一個特定資訊,比如使用其他顏色來吸引人們的注意力的時候,可使用Write-Host命令;

Write-Host和其他Cmdlets一樣使用管道,但是它不放置任何資料道管道中。反而會直接寫到宿主應用程式的介面。正如此,可以使用命令列中的-ForegroundColor和-BackgroundColor引數將前景和背景設定為其他顏色:

注:不是每個使用PowerShell的應用程式都支援其他顏色,也並不是每個應用程式都支援所有顏色。

該輸出方法不適用於常規的輸出結果,因為-Host命令輸出到螢幕的任何東西都無法被捕捉。若執行遠端命令或無人值守命令,-Host可能不會按照你的預期工作。正如開始所說,-Host命令僅僅用於與人進行直接互動。

針對手動格式化一個表格,可以使用更好的方法來產生輸出結果,具體可參考 Learn PowerShell Toolmaking in A Month of Lunches(Manning 2012);

針對產生錯誤資訊,警告資訊,除錯資訊等,有更合適的方法實現;

所以,如果妮恰當的使用PowerShell,可能不會多次用到Write-Host命令。

Write-Output命令會將物件傳送給管道。因為它不會直接傳送到顯示介面,所以不允許你指定其他任何的顏色。

它是PowerShell預設使用的一個Cmdlets,預設輸出方式即使用該命令,即使你沒有指定,PowerShell會在底層將資訊傳遞給Write-Output命令。

基本過程為:

1.Write-Output命令將String型別的物件Hello World!放入管道中;

2.管道中只有這個String物件,其會直接到達管道的末端,也就是Out-Default命令;

3.Out-Default命令將物件傳遞給Out-Host命令;

4.Out-Host命令要求PowerShell的格式化系統格式化該物件。

5.Out-Host將格式化的結果集放在顯示介面上。

下面示例中,會在第2步,進行判斷物件長度是否大於10,進行過濾再傳遞給Out-Default:

而使用Write-Host,會直接顯示在介面上,不會經過管道,直達顯示介面:

其他的輸出方式:

Write-Warning/Verbose/Debug/Error

Powershell針對每種輸出方法都有對應的內建配置變數。如果變數設定為“Continue”,則可顯示輸出結果,若設定為“SilentlyContinue”,那麼就不會產生任何輸出資訊。

其中Write-Warning/Error,預設配置變數值為“Continue”,可直接使用:

其中Write-Verbose/Debug,預設配置變數值為“SilentlyContinue”,可設定後使用,否則無資訊顯示:

注意:PowerShell還有兩個輸出命令,Write-Progress/Information,Progress是用來展示進度條的,實現原理和上述命令完全不同,可參閱其幫助文件;Write-Information Cmdlets是PowerShell V5引入的一個新命令,其將資訊寫入一個在Shell中唯一、結構化的流中,使得V5版本既可以寫入結構化資料也可以寫入資訊訊息。Write-Host底層使用的是Write-Information命令,可參閱Https://teachnet.microsoft.com/en-us/library/dn998020.aspx

----End---

相關推薦

Powershell輸入輸出探索應用

這裡的輸入和輸出是指控制檯可顯示的輸入輸出。適用於人機互動,沒有人看的輸入輸出也就沒有意義了。 我們開啟的Powershell.exe和PowerShell ISE以及其他非微軟的應用程式,其使用PowerShell時會呼叫PowerShell的引擎。應用程式也稱為宿主應用

R:連線鍵盤顯示器(輸入輸出)

    R提供多個命令來連線鍵盤和顯示器。 ►使用scan()函式     可以使用scan()從檔案中讀取或者用鍵盤輸入一個向量,它可以是數值型或字元型向量。再增加一些操作,甚至可以讀取資料來形成一個列表。     scan()可以快速的一次讀取整個檔案。 scan(

網易雲課堂_C++程序設計入門(下)_第7單元:出入雖同趣,所向各有宜 – 文件輸入輸出_第7單元 - 作業1:OJ編程

c++ detail using span 換行 tro size str cout 第7單元 - 作業1:OJ編程 查看幫助 返回 溫馨提示: 1.本次作業屬於Online Judge題目,提交後由系統即時判分。 2.學生可以在作業截止時間之前不限次數提

輸入輸出

run 輸出結果 keyword tps www strong 狀態 你會 src 輸出 用print()在括號中加上字符串,就可以向屏幕上輸出指定的文字。比如輸出‘hello, world‘,用代碼實現如下: >>> print(‘hello, worl

python3第七天(輸入輸出

python3輸入和輸出輸出值的方式:1,表達式。2,print()函數。3,文件對象的write()函數str()函數,返回用戶易讀的表達形式。repr()函數,返回解釋器晚讀的表達形式。可以轉義特殊字符串中的特殊字符input()函數:輸入,返回輸出的對象讀和寫文件: open(filename,m

C語言(三)---輸入輸出

而是 abs 空間 精度 保存 括號 ger 原型 parameter 一、輸出   輸入輸出:英文是Input/Output簡稱IO。   C語言標準函數庫中,提供了關於以下介紹的幾種輸出函數,(所有標準輸入輸出函數在調用前,必須先包含頭文件stdio.h) 1.1 簡單

Python 輸入輸出

站點 一個 指定 div sys hello ... line width Python 輸入:   1. 讀和寫文件 # 打開一個文件 f = open("/tmp/foo.txt", "w") #第一個參數是要打開的文件名,第二個參數 w是寫入,r 是只讀

Python3 輸入輸出

open python pickle 輸入輸出 Edit筆記內容:Python3 輸入和輸出 筆記日期:2017-11-05輸出格式美化舊式字符串格式化讀取鍵盤輸入讀和寫文件文件對象的方法pickle 模塊Python3 輸入和輸出輸出格式美化Python有兩種較為常用的輸出方式::表達式語句

字符的輸入輸出即:getcharputchar

字符輸入 ict 通過 click stat etc clas 方式 under #include <stdio.h> int main(int argc, const char * argv[]) {

個人成長我主要分為輸入輸出

信息 OS pos 管理 知識 專業 https 一個 log 輸入、輸出、思考、內化; 個人成長我主要分為輸入和輸出。 通過書籍,電影,音頻,訂閱優質公眾號...進行主題性的輸入,每個月專註一個輸入主題,並且用印象筆記進行知識管理。 在這個信息過載的時代,如何

Problem X: C語言習題 學生成績輸入輸出

hang output pan log board AR tput 成績 sub Problem X: C語言習題 學生成績輸入和輸出 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 4722 Solved: 2284[Su

文件的輸入輸出

AD ont lin print 程序 span pri nbsp 打開 以下程序可以打開一個文件並逐行讀取該文件的內容,值得一提的是readline()逐行讀取,而readlines()讀取文件的全部 f=open(‘G:\workspace\doc\name.txt‘,

2.6 計算機輸入輸出

退役 丟失 蘋果公司 部分 他在 計算器 CP cpu 計算 計算機組成 2 計算機基本結構 2.6 計算機輸入和輸出 如果無法與外界進行聯系,計算機的CPU,存儲器再強大也沒有任何的用處。因此我們需要在我們的模型機上加上輸入與輸出,這才能構成一個完整的計算機模型。 這

視頻的輸入輸出

有一個 控制臺 利用 write VC windows 如果 std imshow 視頻可以理解為一段連續的圖片數據,OpenCV裏可以很簡單的通過兩個類實現視頻的輸入和輸出 VideoCapture,VideoWriter VideoCapture可以走文件或者攝像頭捕獲

Java的輸入輸出遇到的一點問題

() main public 可用 util clip 回收 char 錯誤 1 //package com.yunying.test; 2 import java.io.Console; 3 import java.util.Scanner; 4 //學習io

C++ 學習筆記之——輸入輸出

根據 也會 指向 http 對象 是否 取消 成員函數 輸入輸出 在 C++ 中,我們通過調用輸入輸出流庫中的流對象 cin 和 cout 來實現輸入和輸出。 #include <iostream> using namespace std; int ma

Python基礎入門(輸入輸出

  #輸入和輸出 import math ​ str = input("請輸入:"); ​ print ("你輸入的內容是: ", str) print('常量 PI 的值近似為:%5.3f。' % math.pi) print('{0} 和 {1}'.format('Kobe', '

C++的終端輸入輸出(C++學習筆記 3)

C++和C的輸入輸出方面的不同 在C中輸入和輸出,常使用函式scanf和printf。 C++除了可以照常使用這兩個函式進行輸入和輸出外,還增加了標準輸入流物件cin(念 see-in)和標準輸出流物件cout(念 see-out) scanf("%d",i); printf

C++檔案輸入輸出(C++學習筆記 1)

為了開啟一個檔案供輸入或輸出,標頭檔案需要包括 #include<iostream> 和#include<fstream> iostream庫除了支援終端輸入輸出,也支援檔案的輸入和輸出。 1. 開啟一個輸出檔案 必須宣告一個ofstream型別的物件,來

簡單的輸入輸出

package javastudy; import java.util.Scanner; public class InputOutputTest { // static是這個方法屬於這個類不屬於類的某個物件 public static void main(String[] args) {