gpt4 book ai didi

powershell - 推送/弹出和重启问题

转载 作者:行者123 更新时间:2023-12-02 23:19:25 29 4
gpt4 key购买 nike

我编写了以下Powershell,它为所选文件夹中的所有驱动程序创建了一个bat安装程序,然后应重新启动PC。

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

'

生成的 bat 工作正常,除了重新启动外。

我尝试只用 shutdown 创建 bat ,但它确实有效,所以我缺少与push / popd相关的东西。

最佳答案

我测试了文件创建。必须将-ItemType 'file'添加到New-Item,否则我得到提示输入类型。

主要问题:

您应在执行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"

'@

注意:我添加了 About Quoting Rules中提到的here-doc语法,即使单引号似乎也起作用。

关于powershell - 推送/弹出和重启问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56006732/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com