PowerShell

0

Hej!

Problem mam następujący:
Wymaganiem koniecznym jest użycie jakiegoś jęzka który będzie wspierany przez "surowego" Windowsa. Wybór padł na PowerShella.
Sam program jest dosyć prosty kopiuje pliki z jednego miejsca na drugi.
Chciałem go jednak zautomatyzować. Plik wykonawczy będzie uruchamiany zamiennie: CD lub pendrive. Problem w tym, że w zależności od maszyny może to być raz: C:\ raz D:\ a nawet Z:.
Dlatego chciałbym się w sposób dynamiczny dowiedzieć z jakiej lokalizacji uruchamiany jest plik.

Na prostym przykładzie:
Plik PowerShella nazwany jest: test.ps1
Plik zapisany jest w ściezce: C:\projekty
Więc adres do niego powinien być: C:\projekty\test.ps1

Wrzucając teraz w jego ciało funkcje "Get-Location" zwraca ona zawsze ścieżkę C:\Users%Nazwa_użytkownika%, a nie miejsce w którym znajduje się plik C:\projekty\test.ps1.

Przykład:

clear-host
Write-Host "`nCZYSZCZE"

Get-Location

Write-Host "`nKONIEC!"

Zwraca:

CZYSZCZE

Path                                                                                                                                                                       
----                                                                                                                                                                       
C:\Users\%Nazwa_Użytkownika%                                                                                                                                                           

KONIEC!
0

Zadałem pytanie i sam sobie na niego odpowiedziałem, po chwili w internecie. Jakby ktoś kiedyś szukał rozwiązania:

$PSScriptRoot = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition

1 użytkowników online, w tym zalogowanych: 0, gości: 1