BAT脚本自动获取管理员权限等功能

偶尔可能会用到Windows下批处理脚本,虽然对BAT脚本使用的少,但是确实很有用,在此记录下一些常用的功能实现代码,长期更新。

自动获取管理员权限

在Windows上很多操作需要管理员权限,比如创建服务等。但是在批处理在需要管理器权限的时候,一般要求操作人员切换到管理器 CMDPS 下,进行执行,比较不方便,下面的脚本可以实现自动获取管理员权限,只需要操作人员确认即可

@echo off
%1 %2
ver|find "5.">nul&&goto :Admin
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :Admin","","runas",1)(window.close)&goto :eof
:Admin
REM 在此就可以开始执行自己代码

获取脚本文件目录

用户在执行批处理脚本的时候,可能并没有在批处理所在目录进行,因此某些功能可能因为目录不正确而导致失败,因此我们需要自动切换到脚本文件目录去执行后续代码,获取脚本文件目录的代码如下

cd /d %~dp0
set cwd=%~dp0
echo %cwd%

获取执行命令成功与否

POSIX 系统下,获知命令执行成功或失败的结果比较方便,批处理也有类似功能,稍复杂而已

mycommand
if %ERRORLEVEL% NEQ 0 (
REM 上面的命令执行失败了
) else (
REM 上面的命令执行成功了
)

执行失败不仅包含此命令无法执行,也包括此命令执行后,返回非0的返回值(退出码)

最近的文章

Linux配置添加FTP用户

Linux下最常用的FTP软件是vsftpd,使用起来非常简单,功能也很强大,以下记录下最简单的使用配置方法。 服务安装vsftpd是常用软件,因此一般安装也不用费时费力的去源码安装,直接在仓库中进行安装即可,比如在红帽系的发行版上,直接通过YUM安装,如 yum install vsftpd 系统 …

技术 继续阅读
更早的文章

C/C++执行命令并获取输出结果

在C/C++中执行指定命令是比较常见的功能,但是其输出对调用者来讲是非常重要的参考,亦或者通过获知调用程序运行成功与否做下一步处理。 Win32平台方法Win32平台上的程序员貌似总不是对返回码那么感兴趣,不像Linux程序员随随便便在脚本都是 $?,但事实上确实是有专门的API提供了方法,而且总体 …

技术 继续阅读