My Powershell script, Foo.ps1:
Function Foo($directory)
{
echo $directory
}
if ($args.Length -eq 0)
{
echo "Usage: Foo <directory>"
}
else
{
Foo($args[0])
}
В консоли Windows:
powershell -command .\Foo.ps1
Результаты в: "Термин". \Foo.ps1 "не распознается как имя командлета, функции, файла script или исполняемой программы. Проверьте правописание имени или если путь был включен, проверьте правильность пути и повторите попытку."
Это несмотря на то, что Foo.ps1 находится в текущем каталоге, откуда я называю Powershell. Затем я попытался вызвать его, указав полный путь к файлу script; потому что этот путь содержит пространство, которое, я считаю, мне нужно каким-то образом процитировать. Также мне нужно передать аргумент script, который также является именем файла, содержащим одно или несколько пробелов. Независимо от того, что я пытаюсь, я не могу заставить его работать. Это мое лучшее предположение до сих пор:
powershell -command "'C:\Dummy Directory 1\Foo.ps1' 'C:\Dummy Directory 2\File.txt'"
Что дает ошибку "Неожиданный токен C:\Dummy Directory 2\File.txt" в выражении или выражении. В строке: 1 char: 136 ".
Изменить: я выяснил, почему
powershell -command .\Foo.ps1
не работает. Это связано с тем, что файл Microsoft.PowerShell_profile.ps1 имел
cd C:\
так как при запуске powershell он меняет каталог.