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

[其他] [已解决]求助批处理使用变量mklink不成功

本帖最后由 sunkui1993 于 2019-7-22 14:27 编辑

我设置了两个变量 TargetPath 和 LinkPath 。
然后本来是要执行“mklink /d  G:\\SUNKUI\\LoadProjrct\\Content\\SyblicAssets  G:\\Assets”这个命令
但是我用刚刚初始化的变量来代替了。
为什么这样执行不成功了呢   求大佬指点指点,万分感谢。
以下是源代码
------------------
  1. @ echo off
  2. echo 正在启用超级管理员权限...
  3. %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
  4. cd /d "%~dp0"
  5. set TargetPath = G:\\SUNKUI\\LoadProjrct\\Content\\SyblicAssets
  6. set LinkPath = G:\\Assets
  7. mklink /d %TargetPath% %LinkPath%
  8. pause
复制代码

如果不换成变量,是可以成功的

TOP

回复 4# Batcher


    多谢老哥~

TOP

回复 3# flashercs


    多谢多谢

TOP

回复 4# Batcher


    还有一个问题,我如果把这两个变量设置成形参,值是由外面传进来的话,为啥会显示我没有管理员权限呢?

而这个bat脚本 在最开始就已经有打开管理员权限的代码了。

TOP

本帖最后由 sunkui1993 于 2019-7-22 11:21 编辑

更改成传参变量后的源码:
  1. @ echo off
  2. %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
  3. cd /d "%~dp0"
  4. echo TargetPath=%1
  5. echo LinkPath=%2
  6. mklink /d %TargetPath% %LinkPath%
  7. pause
复制代码
回复 7# sunkui1993

TOP

回复 9# Batcher

会的。提示我没有足够的权限执行此操作。 依照我最开始的代码 直接把这两变量在bat里初始化,是不会提示权限问题的。不知道为何从外面传值,就会有这个问题

TOP

回复 11# flashercs


    老哥,可以说仔细一点吗,感谢~

TOP

回复 13# flashercs


   老哥,多谢指点,按照你的方法,确实是打开了管理员权限。
  但是命令语法不能识别。
javascript:;

  然后我一看变量值,前后有双引号,就把变量赋值时改成 %~2. %~3.把双引号去掉了,但是还是命令语法不能识别。
javascript:;

TOP

回复 15# flashercs


    改成\ 了,但是还是语法不正确
javascript:;

TOP

回复 17# flashercs


    没弄反呀,可能是我名称起的有歧义吧,为后面一个路径创建一个链接,在前面一个路径显示。
   刚刚 我已经找到原因啦,设置变量的时候,应该把echo换成set就好了。谢谢你啦 大佬

TOP

返回列表