Добавление нужной строки в Split-Path - PullRequest
0 голосов
/ 20 мая 2019

Я хочу передать файл в качестве аргумента:

Invoke-Sqlcmd $SqlQuery -InputFile $sqlPath

Файл находится в другой папке. Parent Folder -> Different Folder -> Desired File

Я получил доступ к Parent Folder, используя:

$sqlPath = Split-Path -Parent $PSScriptRoot

Как я могу добавить финальную часть к $sqlPath? Это мой первый сценарий, и я понятия не имею, как добавить \DifferentFolder\DesiredFile.sql (string?) К этой переменной.

Ответы [ 2 ]

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

После чего вам нужно выполнить «конкатенацию строк», в основном добавив две строки для формирования более длинной, PowerShell имеет несколько методов, но + работает.

Вы также сказали, что хотите обновить $sqlpath, поэтому

   $sqlpath = $sqlpath + "\DifferentFolder\DesiredFile.sql"

Должно работать.

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

Вы можете использовать интерполяцию строк, чтобы сделать это:

$sqlPath = "$(Split-Path $PSScriptRoot -Parent)\DifferentFolder\DesiredFile.sql"

Если вы поместите переменные в строку в двойных кавычках, PowerShell заменит их для вас во время выполнения. Еще более гибкой является возможность помещать исполняемый код в строку (как показано в моем примере), используя подвыражение $(...). Однако, будьте осторожны, чтобы не сделать строку нечитаемой для слишком большого количества кода. В некоторых случаях лучше разбить это на несколько шагов:

$parentFolder = Split-Path $PSScriptRoot -Parent
$sqlPath = "$parentFolder\DifferentFolder\DesiredFile.sql"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...