所以我想把这个文件复制到程序文件中,它需要像这样(必须右键单击,以管理员身份运行):
Copy-Item \\Poplar\SuperSound -Destination 'C:\Program Files\' -Force -Recurse
但我需要在 powershell 脚本中使用它。
我可以提升的通常方法是:
powershell -command "install_bananas.bat" -Verb runas
但是当我运行时:
powershell -command "Copy-Item \\Zuul\IT\ffmpeg -Destination 'C:\Program Files\' -Force -Recurse" -Verb runas
...咳出了一个错误:
Copy-Item : A positional parameter cannot be found that accepts argument 'runas'.
因此,我必须将 -argumentlist 与 Start-Process 一起使用:
Start-Process powershell -Verb runas -argumentlist "Copy-Item \\Poplar\SuperSound -Destination 'C:\Program Files\' -Force -Recurse"
所以我猜 argumentlist 仅由 Start-Process 使用。
那么什么是powershell -command与Start-Process powershell -argumentlist那么当它必须运行多参数命令时为什么会遇到 -Verb runas 问题,例如:
Copy-Item A -Destination B
?
注意:我认为是时候买一本 Powershell 书了。
虽然得到一本书会给你一些东西,但首先要访问帮助文件,因为它们是免费的并且就在你面前。 ;-}
通过 cmdlet 或 powershell.exe 运行命令是两个不同的东西。每个都有其引用细节。你会得到这些类型的错误,因为不正确的语法包括需要的引用。
因此,对于您的用例, Start-Process 将是这样的:
对于 PowerShell.exe,如下所示:
或这个
Thye 可以组合,例如,如果您在 ISE/VScode 中,并且您想在 ISE/VSCode 中的同时向新实例发送命令,那么,如下所示: