Если там к примеру $Title пустой а $Department нет, то так и записать пустой Title и проверить $Departme не превышает ли он 50 символов если нет также записать на свое место, если превышает обрезать до 50 символов и записать в файл
Import-csv ...... |
Foreach-Object {
# Тут обработки, которых я не очень понял
# Я просто обрезаю title до 50
if ($_.Title.Length -gt 50) {
# Вам явно не хватает присвоения результата remove(),
# я сделал по-другому, но суть та же
$_.Title = $_.Title.Substring(0, 50)
}
# вывод объекта дальше по конвейеру
$_
} |
# Тут специально предназначенная для вывода csv команда, а не out-file
Export-csv .....
The Procfile must live in your app’s root directory. It does not function if placed anywhere else.
IpInterfaceMetric=0
$c = [string[]](Get-Content .\0.txt)
$sk1 = [System.Collections.Generic.HashSet[string]]::new($c)
$c = [string[]](Get-Content .\1.txt)
$sk2 = [System.Collections.Generic.HashSet[string]]::new($c)
$sk1.IntersectWith($sk2)
$sk1
#классический цикл
foreach ($obj in $list) {
# сделать что-нибудь с переменной $obj
Set-something -name $obj.name -value $obj.value
}
#цикл с использованием pipeline
$list | foreach-object {
# сделать что-нибудь с переменной $_
Set-something -name $_.name -value $_.value
}
Set the value of the LocalAccountTokenFilterPolicy registry entry to 1.
For example, the following command uses the New-ItemProperty cmdlet and the Windows PowerShell Registry Provider to create the LocalAccountTokenFilterPolicy registry entry on the local computer and set its value to 1.
new-itemproperty -name LocalAccountTokenFilterPolicy -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -propertyType DWord -value 1
#читаем список всех компов
$all=Import-csv xxx
#проходим по списку в поисках живых где неустановлено
foreach ($comp in $all) {
# проверяем всякие условия
if (-not $comp.installed -and
(test-connection $comp.name) -and
(-not (test-path ....)) { #можно еще условий добавить
#install
Invoke-command -computername $comp.name {
#тут команды установки
# никаких повторных invoke-command и powershell НЕ надо
}
.....
#ставим флаг что установлено
$comp.installed=$true
}
}
#экспортируем обратно в csv с установленными флагами
$all | export-csv xxx
Adb devices | select-object -skip 1 | foreach-object -parallel {
$id=$_ -replace '\s+device'
Adb -s $id install some.apk
}
$fields = 'object1','object2','object3','object4','object5','object6'
$data = 'name object quantity
name1 object1 1
name1 object5 10
name1 object2 5
name2 object2 1
name2 object3 4' -split "`r`n" | ConvertFrom-Csv -Delimiter ' '
foreach($d in ($data | Group-Object -Property name)) {
$o = [ordered]@{ name = $d.name }
$name_data = $d.Group | Group-Object -Property object -AsHashTable
foreach ($field in $fields) {
if ($name_data.ContainsKey($field)) {
$o[$field] = $name_data[$field].quantity
}
else {
$o[$field] = 0
}
}
[PSCustomObject]$o
}
name : name1
object1 : 1
object2 : 5
object3 : 0
object4 : 0
object5 : 10
object6 : 0
name : name2
object1 : 0
object2 : 1
object3 : 4
object4 : 0
object5 : 0
object6 : 0
get-localuser | export-csv -delimiter ';' -encoding utf8 -notypeinformation -path d:\путь_к_файлу.csv
import-csv -delimiter ';' -encoding utf8 -path d:\путь_к_файлу.csv |
foreach-object {
$pass = New-Object System.Management.Automation.PSCredential 'a', ($_.password | ConvertTo-SecureString - AsPlainText -Force)
new-localuser -Name $_.Name -Password $pass.password ..... # тут другие нужные параметры
}
ServerConfig="(.*)\b(name=[^\s]+)\b(.*)"|"(.*)\b(name=[^\s]+)?"
@echo off
@powershell.exe -ExecutionPolicy Bypass -Command "$fn = \"%~f0\"; $_=((Get-Content $fn) -join \"`n\");iex $_.Substring($_.IndexOf(\"goto :\"+\"EOF\")+9)"
@goto :EOF
Start-Process microsoft-edge:https://yoomoney.ru/moneylandia/lootboxes
Start-Sleep 5
Get-Process -Name "*msedge*" | Stop-Process
echo "$fn completed!"
pause