Вы на самом деле не предоставляете достаточно информации, чтобы помочь, потому что вам действительно нужно предоставить больше информации о том, как выглядит этот файл, и о
Вы можете читать содержимое из переменных так же, как вы можете из файлов на привод. Переменная - это диск в среде PowerShell, и вы можете просмотреть все диски по умолчанию, выполнив ...
Get-PSDrive
# Results
<#
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
Alias Alias
...
Cert Certificate \
...
Env Environment
...
Function Function
G FileSystem G:\
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
Variable Variable
WSMan WSMan
#>
Итак ...
$MyNewVariable = 'Some text here from where ever'
Get-Content -Path Variable:\MyNewVariable
# Results
<#
Some text here from where ever
#>
Хотя приведенное выше работает, это не всегда в силе. Все зависит от того, как вы заполняете эту переменную. Например:
Get-Content -Path 'D:\temp\hello.bat'
# Results
<#
:: sample cmd file
echo 'Hello World!'
#>
($MyNewVariable = Get-Content -Path 'D:\temp\hello.bat')
# Results
<#
:: sample cmd file
echo 'Hello World!'
#>
Get-Content -Path 'Variable:\MyNewVariable'
# Results
<#
:: sample cmd file
#>
Чтение содержимого файлов - это всего лишь вопрос использования Get-Content и указания пути к файлу. При чтении файлов существует множество опций Get-Content ...
Powershell: множество способов чтения и записи в файлы
Импорт данных с помощью Get-Content -Raw
Get-Content - это команда goto для чтения данных. По умолчанию эта команда будет читать каждую строку файла. В итоге вы получите массив строк. Это также хорошо передает каждый из них по конвейеру.
Параметр -Raw переведет все содержимое в виде многострочной строки. Это также выполняется быстрее, потому что создается меньше объектов.
Get-Content -Path $Path -Raw
... и если это не дает вам все, что вам нужно, например, работа с большими файлами, то есть. Net библиотеки.
Ускоренное чтение с System.IO.File
Простота использования, обеспечиваемая CmdLets, может привести к небольшим потерям производительности. Он настолько мал, что вы не заметите его для большинства сценариев, которые вы делаете. Когда наступит тот день, когда вам понадобится больше скорости, вы обнаружите, что обращаетесь к нативным командам. Net. К счастью, с ними легко работать.
[System.IO.File]::ReadAllLines( ( Resolve-Path $Path ) )
Это так же, как Get-Content -Path $ Path, в результате вы получите коллекцию, полную строк. Вы также можете прочитать данные в виде многострочной строки.
[System.IO.File]::ReadAllText( ( Resolve-Path $Path ) )
$ Path должен быть полным путем, иначе он попытается сохранить файл в C: Папка \ Windows \ System32. Вот почему я использую Resolve-Path в этом примере.