
我正在尋找一個執行程式相當於 Linux和其他 bang 指令,sudo !!
例如!x
、!?x
和提到的!!:p
!!*
這裡。
答案1
你可以試試gsudo
,Windows 的 sudo允許以提升的權限運行命令在目前控制台上,提升目前 shell,或在新控制台上啟動提升的指令。
例子
gsudo {command} [arguments]
gsudo md "C:\Program Files\MyApp"
# spawn the current shell (Cmd/PowerShell/PSCore) in a new console window
gsudo -n
# spawn PowerShell in a new console window
gsudo -n powershell
更新:由於gsudo v0.7.1
,它支持 Unix-sudo Bang Bang 語法,在 CMD 上:
gsudo !!
提升最後執行的命令。gsudo !prefix
提升最後執行的以前綴開頭的命令。gsudo !?infix
提升最後執行的包含中綴的命令。
安裝
- 用湯匙安裝:
scoop install gsudo
- 使用 Chocolatey 安裝:
choco install gsudo
手動安裝方法、文件和來源位於https://github.com/gerardog/gsudo
答案2
要回答問題的另一半,您可以使用多斯基查看或解析命令歷史記錄。預設情況下,Doskey 在所有支援的 Windows 版本上已安裝並處於活動狀態。
這顯示了您的命令歷史記錄:
doskey /history
您可以解析結果並將其推送到 runas,但將其包裝在批次文件中將使提示時變得更加簡單。
答案3
sudo 等效項是運行命令,用於在不同的使用者帳戶下執行程式。
使用範例:
runas /user:an-administator-account "cmd.exe /C mycommand"
Windows 與 Linux 的不同之處在於,預設情況下,即使是管理員帳戶也不會以提升的方式運行,儘管與非管理員帳戶不同,它可以提升自身。
自舉的方法請參考: