Проблема с pushd / popd и перезагрузкой - PullRequest
2 голосов
/ 06 мая 2019

Я пишу следующий PowerShell, который создает установщик bat для всех драйверов из выбранной папки, а затем должен перезагрузить компьютер.

New-Item C:\Tools\Drivers\DellLatitude3450.bat

Add-Content C:\Tools\Drivers\DellLatitude3450.bat -Value '

pushd C:\Tools\Drivers\

forfiles /p DellLatitude3450 /s /m *.inf /c "cmd /c pnputil -i -a @Path"

rmdir /s /q "C:\Tools\Drivers\DellLatitude3450"

rmdir /s /q "C:\Tools\Drivers\Elevate"

del /f "C:\Tools\Drivers\Elevate.zip"

del /f "C:\Tools\Drivers\DellLatitude3450.bat"

shutdown /r /t 15

popd

'

Сгенерированная летучая мышь работает отлично, за исключением перезагрузки.

Я пытался сделать то же самое, только создавая летучую мышь с shutdown , и это работает, поэтому мне не хватает чего-то связанного с pushd / popd.

1 Ответ

3 голосов
/ 06 мая 2019

Я проверил создание файла. Пришлось добавить -ItemType 'file' к New-Item, иначе я получил приглашение ввести type .

Основной выпуск :

Вы удаляете пакетный файл до того, как предполагается выполнение команды shutdown. Переместите строку удаления вниз в конец кода пакетного файла. Это должно затем позволить команде shutdown выполнить удаление пакетного файла до того, как он достигнет конца, немедленно завершит пакетный файл.

Код, протестированный при создании пакетного файла:

New-Item C:\Tools\Drivers\DellLatitude3450.bat -ItemType 'file'

Add-Content C:\Tools\Drivers\DellLatitude3450.bat -Value @'

pushd C:\Tools\Drivers\

forfiles /p DellLatitude3450 /s /m *.inf /c "cmd /c pnputil -i -a @Path"

rmdir /s /q "C:\Tools\Drivers\DellLatitude3450"

rmdir /s /q "C:\Tools\Drivers\Elevate"

del /f "C:\Tools\Drivers\Elevate.zip"

shutdown /r /t 15

popd

del /f "C:\Tools\Drivers\DellLatitude3450.bat"

'@

Примечание. Я добавил синтаксис here-doc, упомянутый в О правилах цитирования , хотя кажется, что одни одиночные кавычки работают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...