• 00
  • :
  • 00
  • :
  • 00

批处理管理员运行当前路径问题

来自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"

 

posted @ 2015-04-09 10:24  Garson_Zhang  阅读(875)  评论(0编辑  收藏  举报