Das Ausführen dieses Codes in ISE funktioniert.Aktuelles Verzeichnis anscheinend nicht aktuelles Verzeichnis
Push-Location -Path $(Split-Path -Parent $myInvocation.MyCommand.Path)
Get-Location
$file = '.\ex.txt'
$reader = New-Object System.IO.StreamReader($file)
Das Ausführen des gleichen Codes in der Konsole schlägt fehl. Was vermisse ich?
PS H:\src\powershell> .\ccount.ps1
Path
----
H:\src\powershell
New-Object : Exception calling ".ctor" with "1" argument(s): "Could not find file
'C:\src\powershell\ex.txt'."
At H:\src\powershell\ccount.ps1:9 char:11
+ $reader = New-Object System.IO.StreamReader($file)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [New-Object], MethodInvocationException
+ FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands
.NewObjectCommand
Wie dies von der vorgeschlagenen doppelten
Die anderen Frage/Antwort anders tut für eine Erklärung geben, warum Powershell in diesem Fall versagt. Es gibt jedoch keinen Hinweis darauf, warum dies in ISE funktioniert. Dies scheint ein signifikanter Unterschied zwischen der Konsole und dem ISE-Host zu sein.
Ich verwende PSVersion 5.0.10586.117 auf Windows 7 Enterprise SP1.
Mögliche Duplikate von [Warum nicht .NET-Objekte in PowerShell verwenden das aktuelle Verzeichnis?] (Https://stackoverflow.com/questions/11246068/why-dont-net-objects-in-powershell-use-the -current-directory) – BenH