1

РЕДАКТИРОВАТЬ: Alt title: New-PSDrive в Powershell не работает так же, как NET USE в летучей мыши

Я пытаюсь загрузить скрипт Python в WinPython с пути UNC, поэтому мне нужно сопоставить его с диском. У меня все это работает в файле bat, но я не могу заставить его работать в Powershell.

летучая мышь (работа):

NET USE P: "\\networkPath\WinPython\WinPython-32bit-3.6.1.0Zero"
PUSHD P:\
"P:\python-3.6.1\python.exe" "P:\loadRemix3D.pyw"

Powershell(сбой):

New-PSDrive -Name P -PSProvider FileSystem -Root \\networkPath\WinPython\WinPython-32bit-3.6.1.0Zero
Push-Location -Path P:\    
Start-Process -FilePath P:\python-3.6.1\python.exe -WorkingDirectory P:\python-3.6.1 -ArgumentList P:\loadRemix3D.pyw

Путь правильный, так как в Powershell правильно выполняется Python и загружается скрипт Python, но путь скрипта Python ведет себя так, как будто я загрузил его непосредственно из UNC.

Как заставить Powershell работать так же, как летучая мышь?

РЕДАКТИРОВАТЬ: Согласно ответу Джеффа, вот рабочая версия сценария Powershell:

NET USE P: "\\networkPath\WinPython\WinPython-32bit-3.6.1.0Zero"
Push-Location -Path P:\
Start-Process -Wait -FilePath "P:\python-3.6.1\pythonw.exe" -WorkingDirectory "P:\python-3.6.1" -ArgumentList "P:\loadRemix3D.pyw"
NET USE P: /delete /y

Единственное, что мне нужно было добавить, - это явное удаление сопоставления, поскольку кажется, что сопоставления NET USE сохраняются в глобальном контексте PowerShell (?).

1 ответ1

1

Диски, созданные с использованием поставщика файловой системы Powershell (т. New-PSDrive -PSProvider FileSystem), не видны "внешним" процессам и "расширяются" до корня при передаче в такой внешний процесс. Вместо этого используйте ту же команду NET USE которую вы используете для пакетной версии программы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .