第二个超时功能在批处理文件中不起作用
Second Timeout function didn`t work in Batch File
正在为游戏制作启动文件(如具有特殊功能的快捷方式)。 (反恐精英全球攻势)
目的是替换菜单音乐 - 一些更新之前这更容易,但现在我需要伪造一个批处理文件。
这是目前的样子
@Echo off
"C:\Users\Cedo\Desktop\csgo\csgo\Counter-Strike Global Offensive.url"
Timeout 9
"C:\Users\Cedo\Desktop\csgo\csgo\csgomusic.m3u8"
[Timeout 240]!
[Taskkill /IM winamp.exe]! ----> Dont work!
Exit
而且去这里的路比我想象的要复杂。我已经解决了很多问题,因为我猜互联网上的很多东西似乎已经过时了。
实际问题是 winamp 音乐文件的第二次超时和 taskkill。
奇怪的是,当插入第二个超时(如第一个)时,什么也没有发生。
手动关闭 winamp 后,定时器启动!
但是需要做一些事情,以便 240 秒的第二次超时和关闭 winamp 的 taskkill 自动工作。
另一件很酷的事情是在不最小化已启动的游戏的情况下稍后启动 winamp 音乐文件 window。
(已经尝试过 start /min 命令 - 实际上并不重要 - 如果最小化或最大化则不会工作)
有人知道更多吗?现在我很擅长 9 秒(winamp 在游戏最大化之前打开,因为这需要一些时间,所以我没有被标记出来)。
是否有更好的方法来构建或改进它?
Just after closing winamp manually the Timer starts!
鉴于此声明,我推断 "C:\Users\Cedo\Desktop\csgo\csgo\csgomusic.m3u8"
正在启动 Winamp。
请注意将以下脚本放入 "C:\Users\Cedo\Desktop\csgo\csgo\" 文件夹,或更新“_RootFolder”以获得正确的路径。
基本上你需要做的是:
启动一个单独的命令 window 到 运行 杀死 winamp 的任务,否则你将只能在手动杀死 Winamp 时继续执行下一个命令。
@(SETLOCAL
REM SET "KillCmd="%~f0" :Kill_Winamp"
REM SET "_StartKillCMD=start "Kill Winamp!" cmd /c %KillCmd%"
SET "_StartKillCMD=start "Kill Winamp!" cmd /c "%~f0" :Kill_Winamp"
SETLOCAL EnableDelayedExpansion
ECHO OFF
SET "eLvl=0"
REM SET "_RootFolder=%USERPROFILE%\Desktop\csgo\csgo\"
SET "_RootFolder=%~dp0"
SET "CSGo_URL=!_RootFolder!Counter-Strike Global Offensive.url"
SET "Music_File=!_RootFolder!csgomusic.m3u8"
SET /A "_Timer_WinAmp_Start=9", "_Timer_WinAmp_Kill= _Timer_WinAmp_Start + 240"
)
ECHO=%* | FIND /I ":Kill_Winamp" && (
CALL :Kill_Winamp
) || (
CALL :Main
)
( ENDLOCAL
Exit /b %_eLvl%
}
:Main
COLOR 2F
ECHO=======================================================================
ECHO= Launching CSGO, Waiting %_Timer_WinAmp_Start% seconds before starting Winamp.
ECHO=======================================================================
ECHO=
"%CSGo_URL%"
ECHO=
SETLOCAL DisableDelayedExpansion
%_StartKillCMD%
ECHO=
ECHO=Started Kill Timer..
ECHO=
Timeout %_Timer_WinAmp_Start%
"%Music_File%"
ECHO=Exiting, Remove the pause on the next line if not needed.
Pause
GOTO :EOF
:Kill_Winamp
COLOR 4F
ECHO=======================================================================
ECHO= Waiting %_Timer_WinAmp_Kill% Seconds before Killing Winamp.
ECHO=======================================================================
ECHO=
ECHO=
Timeout %_Timer_WinAmp_Kill%
Taskkill /IM winamp.exe
ECHO=Exiting, Remove the pause on the next line if not needed.
Pause
GOTO :EOF
正在为游戏制作启动文件(如具有特殊功能的快捷方式)。 (反恐精英全球攻势)
目的是替换菜单音乐 - 一些更新之前这更容易,但现在我需要伪造一个批处理文件。
这是目前的样子
@Echo off
"C:\Users\Cedo\Desktop\csgo\csgo\Counter-Strike Global Offensive.url"
Timeout 9
"C:\Users\Cedo\Desktop\csgo\csgo\csgomusic.m3u8"
[Timeout 240]!
[Taskkill /IM winamp.exe]! ----> Dont work!
Exit
而且去这里的路比我想象的要复杂。我已经解决了很多问题,因为我猜互联网上的很多东西似乎已经过时了。
实际问题是 winamp 音乐文件的第二次超时和 taskkill。 奇怪的是,当插入第二个超时(如第一个)时,什么也没有发生。 手动关闭 winamp 后,定时器启动!
但是需要做一些事情,以便 240 秒的第二次超时和关闭 winamp 的 taskkill 自动工作。
另一件很酷的事情是在不最小化已启动的游戏的情况下稍后启动 winamp 音乐文件 window。 (已经尝试过 start /min 命令 - 实际上并不重要 - 如果最小化或最大化则不会工作) 有人知道更多吗?现在我很擅长 9 秒(winamp 在游戏最大化之前打开,因为这需要一些时间,所以我没有被标记出来)。
是否有更好的方法来构建或改进它?
Just after closing winamp manually the Timer starts!
鉴于此声明,我推断 "C:\Users\Cedo\Desktop\csgo\csgo\csgomusic.m3u8"
正在启动 Winamp。
请注意将以下脚本放入 "C:\Users\Cedo\Desktop\csgo\csgo\" 文件夹,或更新“_RootFolder”以获得正确的路径。
基本上你需要做的是:
启动一个单独的命令 window 到 运行 杀死 winamp 的任务,否则你将只能在手动杀死 Winamp 时继续执行下一个命令。
@(SETLOCAL
REM SET "KillCmd="%~f0" :Kill_Winamp"
REM SET "_StartKillCMD=start "Kill Winamp!" cmd /c %KillCmd%"
SET "_StartKillCMD=start "Kill Winamp!" cmd /c "%~f0" :Kill_Winamp"
SETLOCAL EnableDelayedExpansion
ECHO OFF
SET "eLvl=0"
REM SET "_RootFolder=%USERPROFILE%\Desktop\csgo\csgo\"
SET "_RootFolder=%~dp0"
SET "CSGo_URL=!_RootFolder!Counter-Strike Global Offensive.url"
SET "Music_File=!_RootFolder!csgomusic.m3u8"
SET /A "_Timer_WinAmp_Start=9", "_Timer_WinAmp_Kill= _Timer_WinAmp_Start + 240"
)
ECHO=%* | FIND /I ":Kill_Winamp" && (
CALL :Kill_Winamp
) || (
CALL :Main
)
( ENDLOCAL
Exit /b %_eLvl%
}
:Main
COLOR 2F
ECHO=======================================================================
ECHO= Launching CSGO, Waiting %_Timer_WinAmp_Start% seconds before starting Winamp.
ECHO=======================================================================
ECHO=
"%CSGo_URL%"
ECHO=
SETLOCAL DisableDelayedExpansion
%_StartKillCMD%
ECHO=
ECHO=Started Kill Timer..
ECHO=
Timeout %_Timer_WinAmp_Start%
"%Music_File%"
ECHO=Exiting, Remove the pause on the next line if not needed.
Pause
GOTO :EOF
:Kill_Winamp
COLOR 4F
ECHO=======================================================================
ECHO= Waiting %_Timer_WinAmp_Kill% Seconds before Killing Winamp.
ECHO=======================================================================
ECHO=
ECHO=
Timeout %_Timer_WinAmp_Kill%
Taskkill /IM winamp.exe
ECHO=Exiting, Remove the pause on the next line if not needed.
Pause
GOTO :EOF