标题: [网络连接] 获取管理员权限的代码为什么会影响到获取网络盘符的判断? [打印本页]
作者: diablozhao 时间: 2021-11-30 17:00 标题: 获取管理员权限的代码为什么会影响到获取网络盘符的判断?
本帖最后由 diablozhao 于 2021-11-30 17:01 编辑
前提:
1.创建一个网络驱动器- net use U: \\192.168.1.2\doc
复制代码
2.删除这个网络驱动器复制代码
3.这时候在【资源管理器】的【此电脑】中可以看网络位置 U: 但是会显示一个大叉。
=====================================================
问题:
使用普通DOS命令- if exist U: (echo U is ok) else (echo U is bad)
复制代码
结果显示为:
U is bad
(这是我想要的结果)
但是,如果批处理中加了获取管理员权限的代码- %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("""%~f0""","::",,"runas",1)(close)&exit /b
- if exist U: (echo U is ok) else (echo U is bad)
复制代码
结果就变成了:
U is ok
为什么会这样。。。疯了
作者: diablozhao 时间: 2021-11-30 17:37
晕了。。。
批处理里设置的 net use U: \\xxx
显示的是 命令成功完成 ,但资源管理器里不显示。
net use U: /delete 也是删不掉盘符
但是在CMD下直接键入是有效的。。。
作者: diablozhao 时间: 2021-11-30 19:03
完整的如下,但不起作用- @echo off
- %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("""%~f0""","::",,"runas",1)(close)&exit /b
- setlocal enabledelayedexpansion
- cd /d "%~dp0"
-
- set dzzfc0= ==========================================================
- set dzzfc1=\\shanghai-fs\doc
- set dzzfc2=\\beijing-fs\doc
- set dzzfc3=\\guangzhou-fs\doc
-
- :DZENV
- echo %dzzfc0%
- echo 是否需要自动创建网络驱动器【U:】?
- echo 无需设置环境请直接按"回车"
- echo 键入"1" 切换到 上海
- echo 键入"2" 切换到 北京
- echo 键入"3" 切换到 广州
- set /p input=请输入需要切换环境的相应数字:
- for %%i in (1 2 3) do (
- if "%input%"=="%%i" (
- if exist U: (
- choice /c:YN /m "已经存在【U:】驱动器,是否需要覆盖?"
- if errorlevel 2 goto END
- net use U: /delete
- )
- net use U: !dzzfc%%i!
- setx ENV_ROOT U: /m
- echo 已配置到网络驱动器【U:】!
- )
- )
- goto END
-
- :END
- echo %dzzfc0%
- pause
- goto:eof
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |