переменная экспорта powershell в текстовый файл - PullRequest
0 голосов
/ 24 мая 2019

Мне нужно извлечь переменную из одной строки в текстовый файл, например так:

Write-Host "Select RDS Collection to migrate"
$AllCollections.Keys | Sort-Object | ForEach-Object { Write-Verbose "[$_] - $($AllCollections.$_)" -Verbose }
Write-Output ''
$Collection = $AllCollections.$((Read-Host -Prompt 'Choose collection number') -as [int])

$oldrdscb = "RDSCB01N01"
$newrdscb = "RDSCB02N01"
$newrdscbsmb = "\\$newrdscb\C$\temp\migrationvariables.txt"

echo "$collection" = "$Collection" | Out-File -FilePath $newrdscbsmb -append -width 200

txt файл \ RDSCB02N01 \ c $ \ temp \igrationvariables.txt теперь содержит:

RDS-FSLOGIXTEST
=
RDS-FSLOGIXTEST

это потому, что он читает первый $ collection и дает вывод переменной $ collection, что имеет смысл. Как я могу получить результат без переменной первого $ collection и отправить его в виде текста вместо переменной, чтобы конечный результат в txt был бы:

$collection = TEST

Перед запуском этого кода txt является emtpy. Цель здесь - прочитать переменные на моем новом сервере rds для переноса темы.

Есть советы? спасибо!

1 Ответ

1 голос
/ 24 мая 2019

Вам просто нужно экранировать знаки доллара, используя обратную черту (`). Обычно она находится над клавишей Tab на клавиатуре.

$oldrdscb = "RDSCB01N01"
$newrdscb = "RDSCB02N01"
$newrdscbsmb = "\\$newrdscb\C$\temp\migrationvariables.txt"

echo "`$collectioname" = "`$Collection" | Out-File -FilePath $newrdscbsmb -append -width 200
...