Задайте текущее местоположение, чтобы оно соответствовало букве диска, так же как и диск работающего скрипта. - PullRequest
0 голосов
/ 09 ноября 2018

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

  1. все относительные пути, записанные в скрипте, будут использовать (и создавать файлы / структуру папок) на этом диске, также,
  2. после завершения выполнения скрипта командная строка PS также показывает, что диск (где находится запущенный скрипт):

Например, перед выполнением, если текущим местоположением является диск C :, т.е. в командной строке PowerShell отображается «C: \», а мой сценарий находится в «D: \ ps_scripts \ test.ps1», все относительные пути в скрипт должен использовать (и создавать файлы / папки) на диске D:

В основном я разрабатываю установочный скрипт, который должен устанавливать приложение на диск, на котором хранится скрипт (т. Е. Он должен быть «относительным», а не «абсолютным / фиксированным» диском).

ТИА

1 Ответ

0 голосов
/ 09 ноября 2018

После небольшой борьбы и нескольких «проб и ошибок» мне удалось написать следующий скрипт, который может установить текущее местоположение только для диска (без остальной части пути), чтобы соответствовать диску, где исполняемый скрипт находится:

Write-host ('$PSScriptRoot: ' + $PSScriptRoot)    #Checking full path of own running script.
$drive = ((Get-Item $PSScriptRoot).PSDrive.Name)  #Getting drive letter of running script.
Set-Location -Path "$($drive):\"                  #Setting Disk-Drive on PS-Cmd-Prompt.

Примечание: я пытался / получил ошибку в последней строке, потому что я забыл заключить переменную $drive в $(), чтобы оценить ее, т.е. преобразовать в выражение , как только я это сделал, Вуаля !!!

Надеюсь, это поможет другим.

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