bat脚本以管理员身份运行时,目录没有定位到当前目录问题的解决方法

摘要:
但运行后,文件目录会自动定位到C:WindosActive.bat。脚本将读取WindosSerial.ini中的文件信息。如果右键单击管理员运行的目录,它将定位到C:读取当前文件的目录。%cd%pause了解其他变量扩展:

我们时常使用bat脚本去处理一些事情,有事bat中的命令需要以管理员的身份运行,但是运行后文件的目录自动定位到了C:Windowssystem32下,而不再脚本所在的目录下。

bat脚本以管理员身份运行时,目录没有定位到当前目录问题的解决方法第1张

这是我的文件目录,WindosActive.bat脚本会读取WindosSerial.ini中的文件信息,但是脚本中的有些命令要以管理员的身份才可以正常运行。如果直接右键管理员运行的目录会定位到C:Windowssystem32。然后提示WindosSerial.ini文件不存在。

我们用echo %cd% 输出当前目录:

bat脚本以管理员身份运行时,目录没有定位到当前目录问题的解决方法第2张

那么有没有其他方法呢?

使用变量扩充 的方法,读取出当前文件的目录,然后cd过去:

@echo off 
if not "%OS%"=="Windows_NT" exit
title WindosActive

echo 当前目录:%cd%
echo 变量扩充: %~dp0
cd /D %~dp0
echo 更改后的目录:%cd%
pause

bat脚本以管理员身份运行时,目录没有定位到当前目录问题的解决方法第3张

有关其他变量扩充的知识:

@echo off 
if not "%OS%"=="Windows_NT" exit
title WindosActive

echo.
echo 将 ^%%I 扩充到一个完全合格的路径名
echo %~f0
echo.
echo 仅将 ^%%I 扩充到一个驱动器号 
echo %~d0
echo.
echo 仅将 ^%%I 扩充到一个路径 
echo %~p0
echo.
echo 仅将 ^%%I 扩充到一个驱动器和路径 
echo %~dp0
echo.
echo 仅将 ^%%I 扩充到一个文件名 
echo %~n0
echo.
echo 仅将 ^%%I 扩充到一个文件扩展名 
echo %~x0
echo.
echo 扩充的路径只含有短名 
echo %~s0
echo.
echo 将 ^%%I 扩充到文件的文件属性 
echo %~a0
echo.
echo 将 ^%%I 扩充到文件的日期/时间 
echo %~t0
echo.
echo 将 ^%%I 扩充到文件的大小 
echo %~z0
echo.
echo 查找列在路径环境变量的目录,并将 ^%%I 扩充到找到的第一个完全合格的名称。如果环境变量名 未被定义,或者没有找到文件,此组合键会扩充到 空字符串 
echo %~$PATH:0
echo.
echo 组合扩展:
echo 驱动器+路径+文件名 +文件扩展名 +文件属性 +日期/时间 +文件的大小 
echo %~dpnxatz0
echo.
echo 驱动器+路径+文件名 +文件扩展名 +文件属性 +日期/时间 +文件的大小+ 短名 
echo %~dpnxatzs0
echo.

pause

bat脚本以管理员身份运行时,目录没有定位到当前目录问题的解决方法第4张

其中的变量扩充可以随意组合。

免责声明:文章转载自《bat脚本以管理员身份运行时,目录没有定位到当前目录问题的解决方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇React-Native采坑总结Django之Session与JWT比较下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

LINUX下简单的编译和使用动态链接库[compile .so use c++ in linux]

对动态链接库的概念其实还很模糊,自己的理解是:把一些常用的代码,如函数,类等,编译成一个"包"即DLL(WINDOWS下)或者SO(LINUX下)文件,然后供其它程序使用时直接调用里面封闭的函数即可,实现的代码的重用,也节省了硬盘空间(这点可能是次要的吧).在WIDOWS下利用VC++可方便的生成DLL,在LINUX下则需要通过各种编译命令来实现,对于像我...

redis 安装配置(开机启动)

1、安装wget     yum -y install wget 2、下载redis安装包(版本3.0以上) wget http://download.redis.io/releases/redis-3.0.4.tar.gz 3、安装redis    1)解压:tar -zxvf redis-3.0.4.tar.gz    2)进入src目录    3)m...

select的限制

/*一、select实现并发服务器并发的两点限制 1、一个进能够打开的最大文件描述符限制。可以通过两种方式修改 ulimit -n :获取最大文件描述符个数 ulimit -n 2048:修改为2048个另外可以通过以下程序修改,利用 setrlimit 不能改父进程的限制,只能改当前进程和子进程能够打开的最大文件描述符限制   int getrlimit...

mybaits3.2.8 别名包扫描通配符

<mybatis.version>3.2.8</mybatis.version><mybatis.spring.version>1.2.2</mybatis.spring.version><mybatis.generator.version>1.3.2</mybatis.generator....

shell与变量的声明的操作

1、给命令起别名:alias 执行下面命令后,可以使用dir代替ls –l 命令,显示目录中的文件详细信息: 还可以用一个别名表示几个命令 的结合: 2、ps:显示当前登录会话的所有活动进程: 3、更改默认shell:chsh chsh命令没有预安装,执行时,需要先联网安装。 执行chsh命令,过一会儿就会提示该命令找不到,是否要进行安装,输...

yum仓库本地搭建

原文连接: https://www.cnblogs.com/lldsn/p/10479493.html   1、安装相关软件 yum install -y wget make cmake gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel createrepo yum-utils yum-util...