[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 批处理使用win7管理权限运行后路径丢失怎样解决?

开启UAC的win7环境,有些操作需要管理权限,但是右键批处理,使用管理员权限运行批处理后,运行出错,具体情况是批处理启动时所在的路径丢失。
请测试
批处理测试代码:
  1. @echo off
  2. echo %cd%
  3. pause>nul
复制代码
批处理启动路径:
任意非C:\Windows\System32\目录,意思就是不要放在C:\Windows\System32\目录里,不然就没有测试意义了。

测试方法:
第一步:
以普通方式启动批处理——即双击运行批处理。结果:
[attach]3425[/attach]



第二步:
右键批处理使用管理员权限运行批处理。
结果:
[attach]3426[/attach]

[ 本帖最后由 sirliu 于 2011-2-7 20:39 编辑 ]

正如大家所看到的
路径丢失了~~~~

TOP

哈哈  哥在百度上找到解决办法了 共享给大家
高手的解决办法
链接是:
http://www.cnblogs.com/TianFang/archive/2010/04/29/1724505.html
  1. 一般来说,批处理文件处理相对路径的时候,起始位置是bat文件所在的目录,比如在D:\XX目录下执行bat文件,所有相对目录的操作都会以D:\XX下执行。
  2. 但是有些命令需要管理员权限,右键选择以管理员身份运行时后,起始位置则为C:\Windows\system32,这时候往往不是我们所想要的,
  3. 一种解决解决办法是在批处理的行首加一句"cd D:\XX”进入该目录,以修改其当前位置,但这样需要在批处理文件中加入绝对路径,如果把bat文件移动到其它位置就无法使用了,此时一种更好的方式是用"cd /d %~dp0”代替"cd D:\XX”。
  4. 综上所述,在写bat文件的时候,不管是否需要用到管理员权限,最好在行首加一句"cd /d %~dp0",以统一文件的起始目录。
复制代码
此贴留作备份吧。

TOP

"cd /d %~dp0”
——引号需要加上?

TOP

返回列表