批处理管理员运行当前路径问题
来自http://bbs.pcbeta.com/forum.php?mod=viewthread&tid=1542032
批处理管理员运行以后怎么调转到相对路径的当前目录
问题描述:
批处理管理员运行以后怎么调转到相对路径的当前目录
比如 我现在
D:\123\00.cmd
D:\123\1.txt
批处理内容:
copy 1.txt 2.txt
管理员运行的话会默认系统目录。。。
copy就必须使用绝对路径,我想知道怎么才是可以使用相对路径
我是管理员身份下,上面只是举例.不要跟我说这个命令不需要管理员运行。这个我知道!只是举例!
最终解决办法:
%CD%是不行的
%CD%的变量指的是当前目录
管理员权限执行cmd的情况下,当前目录会变更为%windir%\system32,那么当前%CD%的值就是%windir%\system32
这里应该用%~dp0
%~dp0的变量的值是bat或者cmd脚本所在的路径
写法的话可以先cd到脚本所在的目录,然后再copy,或者直接copy:
写法1:
@echo off
cd "%~dp0"
copy 1.txt 2.txt
写法2:
@echo off
copy "%~dp01.txt" "%~dp02.txt"
慎于行,敏于思!GGGGGG