以管理员身份运行bat脚本时,获取当前文件所在目录

在Win7上,以管理员身份运行bat脚本时,由于默认目录变为C:WindowsSystem32,导致无法正常工作。解决方法是使用`cd /d %~dp0`命令来获取脚本所在目录。解释了`/d`参数用于不同驱动器间切换,`%~dp0`用于获取批处理文件的驱动器和路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以管理员身份运行bat脚本时,获取当前文件所在目录

    知道windows的bat脚本很强大,但是具体命令向来很少接触,今天在win7上运行自己以前写的一个安装mysql数据库到系统服务的脚本时,遇到一些问题,下面记录一下。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

问题:mysql服务安装脚本在win7下运行失败

 

原因:win7下,以右键的“以管理员身份运行”默认进入的目录是C:\Windows\System32目录,因此后续的cd Demo_V2.0.4.9命令肯定进入不到正确的目录

 

解决办法:使用cd /d %~dp0

首先,脚本如下,对具体StartDemo.bat命令不多做解释

cd Demo_V2.0.4.9

cd mysql

 

@echo off

set MYSQL_HOME=%cd%

 

net stop "DemoMySql"

call "%MYSQL_HOME%\bin\mysqld.exe" remove DemoMySql

 

call "%MYSQL_HOME%\bin\mysqld.exe" install DemoMySql --defaults-file="%MYSQL_HOME%\bin\my.ini"

net start "DemoMySql"

 

cd..

cd..

 

这个脚本在xp、2000、2003等

### 如何在命令行中以管理员身份运行获取管理员权限 对于Windows操作系统而言,可以通过多种方式来确保命令提示符(CMD)或者PowerShell具有管理员权限。 一种方法是在普通的CMD命令窗口中输入`runas /user:administrator "cmd /k"`并按下Enter键[^1]。随后会提示输入系统管理员密码,在正确输入之后即可打开一个新的拥有管理员权限的命令提示符窗口。 另一种更为简便的方式适用于图形界面操作:找到命令提示符的应用图标,右击该图标选择“以管理员身份运行”。这种方式不需要记住复杂的指令也不必手动输入账户信息就能够快速获得提升后的权限。 值得注意的是,如果尝试通过批处理(.bat)文件自动执行需要高权限的操作,默认情况下即使是以管理员模式启动CMD,创建新进程(比如调用另一个程序)可能不会继承父级进程的安全上下文,因此可能会遇到工作路径不是预期的情况,即仍然停留在用户的默认目录下而不是.bat文件所在的目录[^2]。 为了使批处理脚本能正常运作于其所在位置而非固定到某个特定用户配置文件夹内,可以在脚本开头加入更改当前目录脚本所在地的相关命令: ```batch @echo off cd /d %~dp0 ``` 上述代码片段的作用是改变当前工作目录为批处理文件本身所处的位置(`%~dp0`),无论从哪里启动这个批处理都会先切换到正确的路径下继续后续的任务执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值