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

[文件操作] 在含有特殊字符的文件夹执行含有空格文件名的批处理,无法以管理员权限运行

本帖最后由 fly9902 于 2022-9-13 09:36 编辑

如题:

例如     D:\@x265Encode\安装设置 - 复制.bat

文件夹含有@,批处理文件名含有空格,这两个条件同时具备的时候
这个批处理就无法获取以管理员权限运行,表现为一跳而过,后面的任何命令都无法执行,但如果去掉获取管理员权限的命令,后面的命令式可以正常执行的



@Echo OFF
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c ""%~dpnx0"" ::","","runas",1)(window.close)&&exit cd /d "%~dp0"



或者


@Echo OFF
setlocal EnableDelayedExpansion
Pushd %~dp0 & cd /d "%~dp0"
%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof
:runas


都无法运行,求教

回复 1# fly9902


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA

你用的系统是Win7还是Win10?试试这样可以吗:
  1. @echo off
  2. %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~s0","::",,"runas",1)(close)&exit /b
  3. echo %cd%
  4. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复  fly9902


请参考Q-04把bat文件保存为ANSI编码:


你用的系统是Win7还是Win10?试试这样可以 ...
Batcher 发表于 2022-9-13 10:58



   
批处理是ANSI编码的,操作系统是win11 22621.382,换你这个还是不行,一跳而过,都等不到pause让你暂停

TOP

本帖最后由 yakeyun 于 2022-9-13 17:18 编辑

回复 3# fly9902

同版本系统,测试正常。
  1. @echo off & setlocal enabledelayedexpansion
  2. Pushd %~dp0 & cd /d "%~dp0"
  3. %1 %2
  4. mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof
  5. :runas
  6. title 批处理程序 by.SanLi
  7. color 07
  8. mode con: cols=80 lines=25
  9. chcp 936 >nul
  10. echo 当前系统时间:%date% %time%
  11. pause >nul
  12. exit
复制代码

TOP

回复  fly9902

同版本系统,测试正常。
yakeyun 发表于 2022-9-13 15:42



   

放到带有@名称的文件夹运行就会一跳而过

TOP

  1. @Echo OFF
  2. %1 %2
  3. mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof
  4. :runas
  5. cd /d "%~dp0"
  6. echo runas1:"%~f0" "%~s0"
  7. setlocal EnableDelayedExpansion
  8. echo runas2:"%~f0" "%~s0"
  9. endlocal
  10. pause
复制代码
微信:flashercs
QQ:49908356

TOP

flashercs 发表于 2022-9-14 06:29



   
成功,谢谢

TOP

找到1个兼容性好像更好的方法,可以一试:
https://kkocdko.site/post/201804010101

TOP

找到1个兼容性好像更好的方法,可以一试:
hfxiang 发表于 2022-9-25 12:29



    妙,可以,感谢

TOP

返回列表