1. powershell輸出結果寫入文件的問題,add-content
使用out-file試試。
2. 怎麼用powershell命令打開exe文件
要使用PowerShell命令打開一個exe文件,可以使用以下命令:
codeStart-Process "path-to-exe-file"
將 "path-to-exe-file" 替換為要打開的exe文件的完整路徑。例如,如果要打開位於C:\Program Files\example\example.exe的exe文件,可以使用以下命令:
codeStart-Process "C:\Program Files\example\example.exe"
該命令碰粗將啟動exe文件余陸並打笑毀鎮開相關的應用程序。
3. PowerShell做什麼:新建一個文件和文件夾
一、首先打開powershell命令窗口。
4. Powershell企業應用 - 第05章 編寫Powershell日誌系統
我們在進行企業腳本執行的過程中,對於執行的輸出,往往需要將其記錄下來用作參考或者留存記錄作為合規的憑據。
文本日誌文件,CSV文件以及Windows日誌是我們可以用來留存記錄的數據源。
文本日誌文件一般是.txt 或者 .log 擴展名的文本文件,我們讓腳本在執行的過程中向里寫入輸出信息。
通過以下命令創建文本日誌文件
使用Powershell寫入信息到文本日誌文件
在腳本中,我們可以使用Add-Content命令向日誌文件中輸出腳本執行的信息。
CSV日誌文件本質也是文本文件,但可以在Excel中打開,更加方便進行篩選和排序。
通過以下命令創建CSV日誌文件
向CSV日誌文件寫入信息
對於CSV文件,我們需要先寫入文件每列的表頭信息,用逗號進行分隔段蠢。
表頭信息範例: username, time, action
這樣我們就定義了CSV文件的三個表頭。
然後寫入的日誌信息應與表頭相對應,也用逗號進行分割。
日誌信息範例: Leo Zhang, 20211116 12:00:00 , Reboot Computer
CSV文件可以使用Microsoft Excel打開,對其中的數據可以像操作握罩陪xls文件一樣,進行排序和篩選等操作。
在腳本中,我們仍然使用Add-Content命令向CSV日誌文件中輸出腳本執行的信息。
使用Powershell寫入信息到文本日誌文件
我們可以在腳本中,將日誌輸出寫入到悶滲Windows日誌中,通過Windows事件管理器進行查看,可以進行更加細致顆粒度的查找和過濾。如果結合ManageEngine的EventsLog Analyzer這樣的工具,可以收集所有伺服器的日誌進行統一管理和歸檔,幫助我們更好的管理日誌以及滿足合規性的要求。
創建Windows日誌
我們可以使用New-Eventlog來創建Windows日誌的日誌本,專門用來存儲來自我們腳本的日誌信息。
New-Eventlog命令的參數:
-Logname: Windows日誌的名稱。
-Source: 日誌的來源
5. powershell如何將write-host結果輸出到文件
不要用Write-host,用Write-output就可以了。
如:
write-host hello | out-file -filepath C:\temp\a.txt
這個就沒有輸出。內
write-output hello | out-file -filepath C:\temp\a.txt
這個就有輸出。
至於為什麼容我也沒有仔細研究。
6. PowerShell 基本語法及常用命令
PowerShell常用命令:
一 Get類
1.Get-Command : 得到所有PowerShell命令,獲取有關 cmdlet 以及有關 Windows PowerShell 命令的其他元素的基本信息。 包括Cmdlet、Alias、Function。
2.Get-Process : 獲取所有進程
3.Get-Help : 顯示有關 Windows PowerShell 命令和概念的信息
4.Get-History : 獲取在當前會話中輸入的命令的列表
5.Get-Job : 獲取在當前會話中運行的 Windows PowerShell 後台作業
6.Get-FormatData : 獲取當前會話中的格式數據
7.Get-Event : 獲取事件隊列中的事件
8.Get-Alias : 獲取當前會話的別名
9.Get-Culture :獲取操作系統中設置的當前區域性
12.Get-Member : 獲取對象的屬性和方法。
13.Get-Random : 從集合中獲取隨機數或隨機選擇對象
14.Get-UICulture : 獲取操作系統中當前用戶界面 (UI) 區域性設置
15.Get-Unique : 從排序列表返回唯一項目
16.Get-Variable :獲取當前控制台中的變數
17.Get-EventLog : 獲取本地或遠程計算機上的事件日誌或事件日誌列表中的事件
18.Get-ChildItem : 獲取一個或多個指定位置中的項和子項
19.Get-Content : 獲取指定位置的項的內容
20.Get-ItemProperty :獲取指定項的屬性
21.Get-WmiObject : 獲取 Windows Management Instrumentation (WMI) 類的實例或可用類的相關信息
22.Get-Location :獲取當前工作位置的相關信息(如:F:\Users\TaoMin )
23.Get-PSDrive:獲取當前會話中的 Windows PowerShell 驅動器
24.Get-Item:獲取位於指定位置的項
25.Get-Process :獲取在本地計算機或遠程計算機上運行的進程
26.Get-Service : 獲取本地或遠程計算機上的服務
27.Get-Transaction :獲取當前(活動)事務
28.Get-ExecutionPolicy :獲取當前會話中的高洞執行策略
二.Set類 (set類命令一般都含有參數)
1.Set-Alias : 在當前 Windows PowerShell 會話中為 cmdlet 或其他命令元素創建或更改別名(替代名稱)
2.Set-PSDebug :打開和關閉腳本調試功能,設置跟蹤級別並切換 strict 模式
3.Set-StrictMode :建立和強制執行表達式、腳本和腳本塊中的編碼規則
4.Set-Date :將計算機上的系統時間更改為指定的時間
5.Set-Variable :設置變數的值,如果該變數還不存做高在,則創建該變數
6.Set-PSBreakpoint :在行、命令或者變數上設置斷點
7.Set-Location :將當前工作位置設置為指定的位置
8.Set-Item :將項的值更改為命令中指定的值
9.Set-Service :啟動、停止和掛起服務並更改服務的屬性
10.Set-Content :在項中寫入內容或用新內容替換其中的內容
11.Set-ItemProperty :創建或更改某一項的屬性值
12.Set-WmiInstance :創建或更新現有 Windows Management Instrumentation (WMI) 類的實例
13.Set-ExecutionPolicy :更改 Windows PowerShell 執行策略的用戶首選項。
三.Write類
1.Write-Host : 將自定義輸出內容寫戚胡枯入主機。類似於.net的 write()或者writeline()功能
2.Write-Progress :在 Windows PowerShell 命令窗口內顯示進度欄
3.Write-Debug :將調試消息寫入控制台
4.Write-Verbose:將文本寫入詳細消息流
5.Write-Warning :寫入警告消息
6.Write-Error : 將對象寫入錯誤流
7.Write-Output : 將指定對象發送到管道中的下一個命令;如果該命令是管道中的最後一個命令,則在控制台上顯示這些對象
8.Write-EventLog :將事件寫入事件日誌
PowerShell變數、常量、數組:
一、變數
PowerShell的變數無需預定義,可直接使用。當使用一個變數時,該變數被自動聲明。
變數以 $ 符號開頭。如: $a
PowerShell普通變數:
1.給變數賦值:
方式一:
$a = "This is a string"
$b = 123
$c = 0.125
方式二:
Set-Variable var 100
Set-Variable var1 」test「
Set-Variable va2 800
2.獲取變數值
get-variable var #獲取單個變數值
get-variable var* #獲取多個變數值
3.清空變數值
clear-variable var
4.刪除變數
remove-variable var
5.連接兩個字元串變數
$a = "This is the 1st string"
$b = "This is the 2nd string"
a + " and " + $b
$c
結果:This is the 1st string and This is the 2nd string
6.變數的方法
$date = Get-Date #獲取當前時間
$date.AddDays(3) #當前時間加三天
PowerShell特殊變數:
強制指定變數類型:
一般不需要為PowerShell的變數指定類型。但是也可以強制指定變數類型。
如:[int] $b = 5
常見變數類型如下:
二、常量
三、數組
PowerShell注釋用法:
PowerShell運算符用法:
運算符如下:
1.算術二元運算符:
2.賦值運算符
3.邏輯運算符
PowerShell函數用法:
用法一如下:(函數中改變變數值並不影響實際值)
執行結果:
用法二如下:(函數中變數值的改變要用$Script:var的形式)
執行結果:
PowerShell條件控制的用法:
一、循環類
1.foreach的用法
用法一如下:
執行結果:
用法二如下:直接獲取管道數據
執行結果:
2.while的用法
用法一如下:
n -le 5) #當 n
$n++
}
執行結果:
用法一如下:
n
n -ne 3) #當$n<>3時進行循環操作
執行結果:
用法一如下:
n
n -gt 3) #當$n>3時停止操作
執行結果:
二、分支類
1.if用法
if語法結構如下:
用法如下:
執行結果:
2.switch用法
switch語法結構如下:
用法一如下: switch(表達式)
執行結果:
用法二如下:switch -casesensitive (表達式)表示區分大小寫
執行結果: It's Monday
用法三如下:switch -regex(表達式)表示正則表達式匹配
執行結果:字母+數字,匹配為:day6
用法四如下:switch -regex(表達式)表示正則表達式匹配 表達式可為數組
執行結果:字母+數字,匹配為:day5
用法五如下:switch -wildcard (表達式)表示通配符匹配
執行結果:day2,匹配為:day2
三、跳轉類
1.break用法:break語句出現在foreach、for、while、switch等結構中時,break語句將使windows powershell立即退出整個循環。
用法如下:
執行結果:
2.continue用法:continue語句出現在foreach、for、while等循環結構中時,continue語句將使windows powershell立即退出某一次輪循環,並繼續下一輪循環。
用法如下:
執行結果:
PowerShell拋出異常的Throw用法:
用法如下:
返回結果:danger 及詳細錯誤信息
PowerShell獲取出錯信息的用法:
用法如下:
function one
{
get-process -ea stop #-ea定義錯誤發生以後該如何繼續執行,意同-ErrorAction
get-childitem ada -ErrorAction stop #此處有錯誤 路徑ada不存在
get-process -ErrorAction stop
}
返回結果:報出錯誤信息
PowerShell單步調試的用法:
用法如下:
執行結果:會出現逐步調試的對話框
本文轉自 https://www.cnblogs.com/feng-zi/p/9935874.html