【bat】bat批处理 使用相对路径,以管理员身份运行不会报错

本文讲述了如何在批处理脚本中使用相对路径以提高维护性,并介绍在管理员权限下运行时的解决方案,包括添加cd/d%~dp0和创建以管理员身份执行的批处理代码实例。

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

问题

在编写批处理时,如果写绝对路径,对后期维护非常不友好,所以尽量写成相对路径。

在同一个目录下,两个批处理相互调用,直接写文件名就可以,但是这里一个问题是,有些批处理功能需要使用管理员身份运行,如果使用管理员身份运行,则直接报错

举个例子

在同目录下有两个bat批处理

echoFun.bat 接收参数,拼接并输出

run.bat 传入参数

echoFun.bat

@echo off
SET a1=%1
SET a2=%2
SET a3=%3
echo %a1%%a2%%a3%

run.bat

@echo off
call echoFun.bat 22 33 44
pause

直接双击run.bat运行是没有问题的

 但如果“以管理员身份运行”

 使用管理员身份运行,直接报错,因为使用管理员身份运行,程序的起始位置为C:\Windows\System32

解决方法

在批处理开头添加cd /d %~dp0,意思是进入该脚本目录

cd /d %~dp0

 在编写批处理脚本时,为了使用相对路径,所有的批处理都加上 cd /d %~dp0

扩展

以管理员身份运行的方法,也可以使用代码,在批处理开头添加以下代码,然后双击批处理运行即可

%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c ""%~s0"" ::","","runas",1)(window.close)&&exit

【bat】bat批处理 以管理员身份运行代码_GreAmbWang的博客-CSDN博客

参考

批处理(.bat)文件中使用相对路径 - 萧痕♂泪 - 博客园

Bat命令——获取当前盘符、当前目录、上级目录 - 话·醉月 - 博客园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GreAmbWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值