windows - Sådan startes PowerShell script fra BAT-fil med korrekt arbejdskatalog?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg forsøger at oprette fladskript, der kan starte PowerShell-script, der hedder det samme som fladfil i korrekt fungerende directotry.


Dette er hvad jeg fik:


@ECHO OFF
PowerShell.exe -NoProfile -Command "& {Start-Process PowerShell.exe -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File ""\%~dpn0.ps1""' -WorkingDirectory '\%~dp0' -Verb RunAs}"
PAUSE


Passering af arbejdskatalog på denne måde virker ikke.


Hvordan laver man script, der vil passere korrekt fungerende directroy og også kommandolinjearbejder?

Bedste reference


En løsning er at lade PowerShell-scriptet ændre katalogen til dets egen oprindelse med:


Set-Location (Split-Path $MyInvocation.MyCommand.Path) 


som den første kommando.


Eller brug denne mappe til at åbne tilstødende filer.


$MyDir = Split-Path $MyInvocation.MyCommand.Path
$Content = Get-Content (Join-Path $MyDir OtherFile.txt)