Прежде всего, я хочу извиниться. Я не работаю с Powershell. Это был отличный опыт для меня! Если мой код заставляет вас съеживаться, я извиняюсь :)PowerShell Удалить путь из Select-String Вывод с использованием переменной
Я работаю с несколькими зданиями, иногда сложно сказать, где находится пользователь, и было бы неплохо найти, где пользователь вошел в систему сегодня.
Я использую пакетный скрипт, когда пользователи регистрируются, чтобы сохранить файл, чтобы я мог его искать, когда был отправлен запрос, но компьютер или даже здание не включены. Новый файл будет генерироваться автоматически в каждый день.
Это вход в пакетный сценарий связан как объект групповой политики:
echo User: , %username% , Computer: , %computername% , Date\Time: , %date% %time% >> \\path\to\my\saved\file-%date:~-4,4%%date:~-10,2%%date:~-7,2%.csv
Это сценарий PowerShell, я использую для поиска пользователя:
Set-StrictMode -Version latest
$path = '\\path\to\my\saved\'
$ext='.csv'
$file='file'
$realFile="$path$file-$(get-date -F 'yyyyMMdd')$ext"
$control = Read-Host -Prompt 'Which User are you looking for?'
$output = $path + "\output.log"
$CSV2String = Select-String -Pattern $control -Path $realFile
Function getStringMatch
{
$result = Select-String -Pattern $control -Path $realFile -Quiet
If ($result -eq $True)
{
$match = $realFile
Clear-Host
Write-Host "Success! $control found logged in today!" -Foregroundcolor "green"
ForEach ($line in $CSV2String) {
$text = $line -Split ","
ForEach($string in $text) {
Write-Host "$string"
}
}
Select-String -Pattern $control -Path $realFile | Out-File $output -Append
} ElseIf ($result -eq $False){
Clear-Host
Write-Host "Error $control not found logged in, please check the User Name and try again!" -ForegroundColor "red"
Write-Host "'$control' Not logged in!" -ForegroundColor "yellow"
}
}
getStringMatch
Это, кажется, отлично работает, однако когда я использую скрипт, вывод выглядит странным для меня, он отображает путь к файлу, который он искал, я не хочу этого. Я просто хочу получить информацию.
Success! SearchedUser found logged in today!
\\path\to\my\saved\file-20160209.csv:1:User:
SearchedUser
Computer:
MyComputer-01
Date\Time:
Tue 02/09/2016 9:31:41.93
Как удалить "\ путь \ к \ моя \ сохранены \ файл-20160209.csv: 1:" часть из моей продукции? Мне нужно, чтобы он менялся в зависимости от дня, я хотел бы использовать переменную, если это возможно.
Я играл с -Replace, но я не смог добиться этого, чтобы выполнить задачу, которую я хотел.
Любая помощь будет оценена :)
Я хотел включить закончил сценарий :( –