Можно ли «напечатать» имя виртуальной машины в Powershell? - PullRequest
0 голосов
/ 24 апреля 2020

Доброе утро,

Я хочу напечатать только имя виртуальной машины, чтобы использовать его в CLI из другой программы. Мы используем Backup-планы в соответствии с использованием виртуальной машины. Для этого мы пишем что-то вроде «Test» в комментарии Vm.

Например:

У меня есть:
Тест VM1
VM2 Linux
Тест VM3
Тест VM4

Другая командная строка (из морошки) handels Backupplans вот так:

. / cbb editHyperVPlan -n имя_бека -v VM1 -v VM3 -v VM4

Дело в том, что я хочу сделать это автоматически, поэтому я Не нужно ставить каждый раз, когда кто-то вносит новую ВМ в список.

НО CLI Cloudberry, похоже, не поддерживает команды Powershell (он работает поверх powershell).

Так что мой Идея заключалась в том, что я пытаюсь напечатать VM1 VM3 и VM4 в -v -v -v ... Это как-то возможно? Извините, если это написано запутанно, я не могу объяснить это лучше ..

Редактировать: я использую эту команду для получения нужной виртуальной машины: Get-VM | Where-Object {$ _. Notes-like ' Test '}

Ответы [ 2 ]

0 голосов
/ 25 апреля 2020

Или что-то вроде этого:

'./cbb editHyperVPlan -n backupname -v {0}' -f ((Get-VM | Where-Object {$_.Notes -like 'Test'}).Name -join '-v ')
0 голосов
/ 24 апреля 2020

Попробуйте это:

$cmd = '& ./cbb editHyperVPlan -n backupname '
 Get-VM | Where-Object {$_.Notes -like 'Test'} | ForEach {
  $cmd += "-v $($_.vmname) "
}

Команда хранится в переменной $ cmd. Для выполнения используйте Invoke-Expression $cmd

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...