Update README.md
This commit is contained in:
parent
2fbd00d523
commit
7c3ebfcbe5
1 changed files with 113 additions and 0 deletions
113
README.md
113
README.md
|
|
@ -80,3 +80,116 @@
|
|||
`Get-Variable Error` последняя команда с ошибкой \
|
||||
`Remove-Variable -Name *` очистить все переменные \
|
||||
`$LASTEXITCODE` содержит код вывода последней запущенной программы, например ping. Если код возврата положительный (True), то $LastExitCode = 0
|
||||
|
||||
### ENV
|
||||
`Get-ChildItem Env:` отобразить все переменные окружения \
|
||||
`$env:PSModulePath` директории импорта модулей \
|
||||
`$env:userprofile` \
|
||||
`$env:computername` \
|
||||
`$env:username` \
|
||||
`$env:userdnsdomain` \
|
||||
`$env:logonserver` \
|
||||
`([DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()).Name` \
|
||||
`[Environment]::GetFolderPath('ApplicationData')`
|
||||
|
||||
### GetType
|
||||
`$srv.GetType()` узнать тип данных \
|
||||
`$srv -is [string]` проверка на соответствие типа данных \
|
||||
`$srv -isnot [System.Object]` проверка на несоответствие \
|
||||
`$char = $srv.ToCharArray()` разбить строку [string] на массив [System.Array] из букв \
|
||||
`$char.GetType()` тип данных: Char[] \
|
||||
`[Object]` массив (BaseType:System.Array) \
|
||||
`[int]` целое число (BaseType:System.ValueType) \
|
||||
`[String]` строка-текст (BaseType:System.Object) \
|
||||
`[DateTime]` формат времени (BaseType:System.ValueType)
|
||||
|
||||
### Property
|
||||
`$srv.Count` кол-во элементов в массиве \
|
||||
`$srv.Length` содержит количество символом строки переменной [string] или количество значений (строк) объекта \
|
||||
`$srv.Chars(2)` отобразить 3-й символ в строке \
|
||||
`$srv[2]` отобразить 3-ю строку в массиве
|
||||
|
||||
### Method
|
||||
`$srv.Insert(0,"https://")` добавить значение перед первым символом \
|
||||
`$srv.Substring(4)` удалить (из всего массива) первые 4 символа \
|
||||
`$srv.Remove(3)` удалить из всего массива все после 3 символа \
|
||||
`$string = "123"` создать строку \
|
||||
`$int = [convert]::ToInt32($string)` преобразовать строку в тип данных число \
|
||||
`[string]::Concat($text,$num)` объеденить переменные в одну строку \
|
||||
`[string]::Join(":",$text,$num)` объеденить используя разделитель \
|
||||
`[string]::Compare($text,$num,$true)` выдает 0 при совпадении или 1/-1 при несовпадении, $true (без учета регистра) или $false (с учетом регистра) \
|
||||
`[string]::Equals($text,$num)` производит сравнение двух строк и выдает $true при их совпадении или $false при несовпадении \
|
||||
`[string]::IsNullOrEmpty($text)` проверяет наличие строки, если строка пуста $true, если нет $false \
|
||||
`[string]::IsNullOrWhiteSpace($text2)` проверяет на наличие только символов пробел, табуляция или символ новой строки
|
||||
|
||||
### Get-Date
|
||||
`(Get-Date).AddHours(-3)` \
|
||||
`$Date = (Get-Date -Format "dd/MM/yyyy hh:mm:ss")` \
|
||||
`$Date = Get-Date -f "dd/MM/yyyy"` получаем тип данных [string] \
|
||||
`[DateTime]$gDate = Get-Date "$Date"` преобразовать в тип [DateTime] \
|
||||
`[int32]$days=($fDate-$gDate).Days` получить разницу в днях \
|
||||
`"5/7/07" -as [DateTime]` преобразовать входные данные в тип данных [DateTime]
|
||||
|
||||
### Regex (регулярные выражения)
|
||||
`-replace "1","2"` замена элементов в индексах массива (везде где присутствует 1, заменить на 2), для удаления используется только первое значение \
|
||||
`-split " "` преобразовать строку в массив, разделителем указан пробел, которой удаляется ($url.Split("/")[-1]) \
|
||||
`-join " "` преобразовать массив (коллекцию) в единую строку (string), добавить разделителем пробел \
|
||||
`$iplist -contains "192.168.1.1"` проверить, что в массиве есть целое значение, выводит True или False \
|
||||
`"192.168.1.1" -in $iplist` проверить на наличие указанного значения в массиве \
|
||||
`-like *txt*` поиск по маскам wildcard, выводит значение на экран \
|
||||
`-match txt` поиска по шаблонам, проверка на соответствие содержимого текста \
|
||||
`-match "zabbix|rpc"` условия, для поиска по нескольким словам \
|
||||
`-NotMatch` проверка на отсутствие вхождения \
|
||||
`$ip = "192.168.10.1"` \
|
||||
`$ip -match "(\.\d{1,3})\.\d{1,2}"` True \
|
||||
`$Matches` отобразить все подходящие переменные последнего поиска, которые входят и не входят в группы ()
|
||||
|
||||
### Группировка
|
||||
`if ((($1 -eq 1) -and ($2 -eq 2)) -or ($1 -ne 3)) {"$true"} else {"$false"}` два условия: (если $1 = 1 и $2 = 2) или $1 не равно 3. Если хотя бы одно из выражений равно True, то все условие относится к True и наоборот \
|
||||
`-and` логическое И \
|
||||
`-or` логическое ИЛИ \
|
||||
`!(Test-Path $path)` # логическое НЕТ (-not), если путь недоступен, вернет True
|
||||
|
||||
### Специальные символы
|
||||
`\d` число от 0 до 9 (20-07-2022 эквивалент: "\d\d-\d\d-\d\d\d\d") \
|
||||
`\w` буква от "a" до "z" и от "A" до "Z" или число от 0 до 9 \
|
||||
`\s` пробел, эквивалент: " " \
|
||||
`\n` новая строка \
|
||||
`\b` маска, определяет начало и конец целого словосочетания для поиска \
|
||||
`.` обозначает любой символ, кроме новой строки \
|
||||
`\` экранирует любой специальны символ (метасимвол). Используется, если нужно указать конкретный символ, вместо специального ({ } [ ] / \ + * . $ ^ | ?) \
|
||||
`+` повторяется 1 и более раз (\s+) \
|
||||
`{1,25}` квантификатор, указывает количество повторений символа слева на право (от 1 до 25 раз) \
|
||||
`[]` поиск совпадения любой буквы, например, [A-z0-9] от A до z и цифры от 0 до 9 ("192.168.1.1" -match "192.1[6-7][0-9]")
|
||||
|
||||
### Якори
|
||||
`^` или `\A` определяет начало строки. $url -replace '^','https:' # добавить в начало; \
|
||||
`$` или `\Z` обозначают конец строки. $ip -replace "\d{1,3}$","0" \
|
||||
`(?=text)` поиск слова слева. Пишем слева на право от искомого (ищет только целые словосочетания) "Server:\s(.{1,30})\s(?=$username)" \
|
||||
`(?<=text)` поиск слова справа. $in_time -replace ".+(?<=Last)" # удалить все до слова Last \
|
||||
`(?!text)` не совпадает со словом слева \
|
||||
`(?<!text)` не совпадает со словом справа
|
||||
|
||||
### Группы захвата
|
||||
`$date = '12.31.2021'` \
|
||||
`$date -replace '^(\d{2}).(\d{2})','$2.$1'` поменять местами \
|
||||
`$1` содержимое первой группы в скобках \
|
||||
`$2` содержимое второй группы
|
||||
|
||||
### Условный оператор
|
||||
`$rh = Read-Host` \
|
||||
`if ($rh -eq 1) {ipconfig} elseif ($rh -eq 2) {getmac} else {hostname}` \
|
||||
Если условие if () является истенным ($True), выполнить действие в {} \
|
||||
Если условие if () является ложным ($False), выполнить действие не обязательного оператора else \
|
||||
Условие Elseif идёт после условия if для проверки дополнительных условий перед выполнение оператора else. Оператор, который первый вернет $True, отменит выполнение следующих дополнительных условий \
|
||||
Если передать переменную в условие без оператора, то будет проверяться наличие значения у переменной на $True/$False \
|
||||
`if ((tnc $srv -Port 80).TcpTestSucceeded) {"Opened port"} else {"Closed port"}`
|
||||
|
||||
### Операторы
|
||||
`-eq` равно (equal) \
|
||||
`-ceq` учитывать регистр \
|
||||
`-ne` не равно (not equal) \
|
||||
`-gt` больше (greater) \
|
||||
`-ge` больше или равно \
|
||||
`-lt` меньше (less) \
|
||||
`-le` меньше или равно
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue