Будучи учеником Powershell, я столкнулся с оператором -f формата . Затем я подумал, возможно ли динамически изменять код в зависимости от условия. Возьмем, к примеру, сценарий сопоставления дисков:
$creds = Get-Credential
$share_needs_creds = $true
$drive_map = New-Object -ComObject WScript.Network
if ($share_needs_creds){
$drive_map.MapNetworkDrive('Z:', '\\server\share', $false, "$($creds.Username)", $($creds.GetNetworkCredential().Password)")
} else {
$drive_map.MapNetworkDrive('Z:', '\\server\share', $false)
}
можно переписать следующим образом:
$creds = Get-Credential
$share_needs_creds = $true
$drive_map = New-Object -ComObject WScript.Network
if ($share_needs_creds){
$condition_smart = ', "$($creds.Username)", $($creds.GetNetworkCredential().Password)"'
} else {
$condition_smart = ''
}
$drive_map.MapNetworkDrive('Z:', '\\server\share', $false{0}) -f $condition_smart
Любой совет приветствуется!