Переменная экспорта powershell в текстовый файл

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

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\migrationvariables.txt теперь содержит:

RDS-FSLOGIXTEST
=
RDS-FSLOGIXTEST

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

$collection = TEST

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

Какие-нибудь советы? Спасибо!

Я не понимаю вопроса...

ArcSet 24.05.2019 20:29

Используйте -f оператор формата и не расширяющуюся строку в одинарных кавычках '$collectionname = "{0}"' -f $Collection | Out-File -FilePath $newrdscbsmb -append -width 200

user6811411 24.05.2019 20:31

откуда $collectioname? откуда $Collection? откуда $collections? что находится в "\\$newrdscb\C$\temp\migrationvariables.txt", прежде чем добавить к нему? ///// пожалуйста, добавьте информацию, необходимую для понимания вашего кода.

Lee_Dailey 24.05.2019 20:46

@lotpings именно то, что мне нужно, спасибо!

IIIdefconIII 24.05.2019 21:40
В чем разница между методом "==" и equals()
В чем разница между методом "==" и equals()
Это один из наиболее часто задаваемых вопросов новичкам на собеседовании. Давайте обсудим его на примере.
Замена символа по определенному индексу в JavaScript
Замена символа по определенному индексу в JavaScript
В JavaScript существует несколько способов заменить символ в строке по определенному индексу.
0
4
1 795
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

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

Другие вопросы по теме