首页 > 解决方案 > .bat 转换为 .exe 未运行

问题描述

我有一个视觉效果,我希望我的用户远程进入,打开浏览器,登录并显示页面,然后在不锁定主屏幕的情况下退出远程会话。我创建了一个批处理文件来恢复窗口,但这需要使用最小化请求的显示并破坏目的,所以我希望它是一个可以从任务栏中单击的 .exe。当我转换我的批处理(按预期运行)时,.exe 除了坐在那里什么都不做。

代码:

set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || (  echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B )

IF EXIST "%PROGRAMFILES(X86)%" (set bit=x64) ELSE (set bit=x86)

if %bit%==x64 (
    echo 64 bit operating system detected
)

if %bit%==x86 (
    echo 32 bit operating system detected
)

for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
  %windir%\System32\tscon.exe %%s /dest:console
)

timeout /t 2 >null

exit

标签: batch-fileexe

解决方案


简单地将.bat扩展名更改.exe为不是正确的方法。我建议您创建一个应用程序(例如使用 Visual Studio 或 PyCharm),它会启动您的批处理文件并将其添加到任务栏。显然,您也可以从头开始创建一个新应用程序,完全按照您的批处理文件所做的工作。

我尝试将批处理文件和批处理文件的快捷方式添加到快捷方式,但正如您正确提到*.exe的,任务栏上似乎只允许文件。


推荐阅读