基本上,我想輸入 7 位數字并在日志檔案中獲取第二行作為輸出。
這是我第一次在 powershell 中嘗試任何東西
獲取內容-路徑 C:\Users\Einar\Desktop\log* -filter * 1234567 .log.txt | 選擇-前 2 | 選擇 -last 1
我有一個包含日志檔案的檔案夾,所有檔案都以 (random7digits).log.txt 結尾,我想通過輸入一組 7 位數字僅輸出第二行。
任何幫助表示贊賞:)
uj5u.com熱心網友回復:
以非常基本的形式,這可以實作您想要的。您可以將其保存為 .ps1 并將其保存在桌面上。如果您右鍵單擊 和Run with PowerShell,則控制臺將在立即回傳后關閉。從預先存在的控制臺會話中呼叫腳本,或者pause在末尾添加一個或其他內容。
我建議您將其擴展為包含以下一些想法的學習練習:
- 檢查檔案是否存在并向用戶提供合理的錯誤處理或訊息
- 檢查檔案是否包含您的“理想”內容,甚至兩行,并向用戶提供合理的錯誤處理或訊息
- 也許在桌面上添加另一個引數,默認值,以防您需要在磁盤上的其他地方使用日志運行它
param(
[Parameter(Mandatory)]
[int]$Digit
)
Get-ChildItem -Path <path_containing_files> -File -Filter *$Digit.log.txt | ForEach-Object {
Get-Content -Path $_ | Select-Object -Index 1
}
uj5u.com熱心網友回復:
函式 Get-Logline
function Get-Loglines{
param(
[Parameter(Mandatory=$true, ValueFromPipeline=$true, HelpMessage='Enter Path to Log Folder:' )]
[string]$Path,
[Parameter(Mandatory=$true, ValueFromPipeline=$true, HelpMessage='Enter string to filter for: *(string).log.txt')]
[int]$filename,
[Parameter(Mandatory=$true, ValueFromPipeline=$true, HelpMessage='Enter line number to read back:')]
[int]$linenumber
)
process{
$lookdepth = $linenumber - 1
Get-ChildItem -Path $Path -File -Filter ('*{0}.log.txt' -f $filename) -force -Verbose |`
ForEach-Object{
Get-Content $_ -Verbose |`
Select-Object -Skip $lookdepth -First 1 -Verbose
}
}
}
測驗用例
C:\> Get-Loglines
cmdlet Get-Loglines at command pipeline position 1
Supply values for the following parameters:
(Type !? for Help.)
Path: C:\Downloads\Newfolder
filename: 666666
linenumber: 2
line 2
示例資料
C:\Downloads\Newfolder [master 39 ~0 -0 !]> Get-ChildItem
Directory: C:\Downloads\Newfolder
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 4/21/2022 2:37 PM 38 ab123456.log.txt
-a---- 4/21/2022 2:37 PM 38 ab666666.log.txt
-a---- 4/21/2022 2:37 PM 38 ab666667.log.txt
-a---- 4/21/2022 2:37 PM 38 acb666666.log.txt
C:\Downloads\Newfolder> Get-Content .\ab666666.log.txt
line 1
line 2
line 3
line 4
line 5
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/462220.html
標籤:电源外壳
上一篇:使用Pester模擬功能不起作用
