我正在寻找命令执行程序相当于 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 安装:
scoop install gsudo
- 使用 Chocolatey 安装:
choco install gsudo
手动安装方法、文档和源代码位于https://github.com/gerardog/gsudo
答案2
要回答问题的另一半,你可以使用任务列表查看或解析命令历史记录。Doskey 在所有受支持的 Windows 版本上默认安装并处于活动状态。
这将显示你的命令历史记录:
doskey /history
您可以解析并将结果推送到 runas,但将其包装在批处理文件中将使其在提示时变得更加简单。
答案3
sudo 等效于runas 命令,用于在不同的用户账户下执行程序。
使用示例:
runas /user:an-administator-account "cmd.exe /C mycommand"
Windows 与 Linux 的不同之处在于,默认情况下,即使管理员帐户也无法提升权限运行,但与非管理员帐户不同,它可以提升自身权限。
有关自我提升的方法,请参阅: