Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 第二个超时函数在批处理文件中不起作用_Windows_Batch File_Cmd_Winamp - Fatal编程技术网

Windows 第二个超时函数在批处理文件中不起作用

Windows 第二个超时函数在批处理文件中不起作用,windows,batch-file,cmd,winamp,Windows,Batch File,Cmd,Winamp,处理游戏的启动文件(如具有特殊功能的快捷方式)。(全球反攻) 其目的是取代菜单音乐-一些更新之前这是比较容易的,但现在我需要在批处理文件锻造 到目前为止,情况就是这样 @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 /I

处理游戏的启动文件(如具有特殊功能的快捷方式)。(全球反攻)

其目的是取代菜单音乐-一些更新之前这是比较容易的,但现在我需要在批处理文件锻造

到目前为止,情况就是这样

@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秒和taskkill自动关闭winamp

另一件很酷的事情是在不最小化已启动游戏窗口的情况下,稍晚启动winamp音乐文件。 (已经尝试过start/min命令-实际上并不重要-如果最小化或最大化,则不会工作) 有人知道更多吗?现在我只需要9秒就可以了(winamp在游戏最大化之前打开,因为这需要一些时间,所以我没有被禁止)

有没有更好的方法来建立或改进这一切

手动关闭winamp后,计时器立即启动

根据此语句,我推断
“C:\Users\Cedo\Desktop\csgo\csgo\csgomusic.m3u8”
正在启动Winamp

注意:将以下脚本放入“C:\Users\Cedo\Desktop\csgo\csgo\”文件夹,或更新“\u RootFolder”以获得正确的路径

所以基本上你需要做的是:

启动一个单独的命令窗口来运行杀死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

使用“start…m3u8”在后台运行它这是它应该的方式(在许多线程中显示),但是在位置和start之间不使用“”启动(是的,这两个`'''),因此看起来像start”““C:\…”),只会打开一个以文件命名的空cmd窗口。使用这些““程序开始时就像我在上面的线程中写的一样。。。因此,仅是位置。Mooble,由于上面的注释并不表示有格式化文本的趋势,请将其视为
start…m3u8
,并推断
start
命令就是他们所指示的解决方案。快速查看命令提示帮助将向您显示可用的用法和选项。基本上,如果您要对文件路径进行双引号引用(我建议将其作为标准做法),您应该使用
启动“这些双引号之间的任意或无标题”/AnyOtherOptions“C:\Users\Cedo\Desktop\csgo\csgo\csgomusic.m3u8”
。好的,谢谢您的回复,这很酷:D-是的,它启动了winamp-但是仍然有一些问题,就像你提到的那样-所以我插入这个并将它保存为.bat(我想这就是你的意思)在我运行我的快捷方式时工作正常,除了windows找不到的错误:kill_winamp-我会尝试一下。。。现在我正在尝试创建第二个cmd文件(可能会被打开?)-这是正确的方法吗?因为启动另一个文件不太好:/OK,尝试一些东西,但是被卡住了。。。当我打开第二个cmd窗口时,我应该在那里做什么。。。你对tot是什么意思?。创建了一个“Kill Winamp!.cmd”文件,认为脚本中的行-:Main和Start“Kill Winamp!”可以连接到一个文件,但似乎不起作用-有什么想法吗?@Mooble嘿,我的错,我遇到了延迟扩展的问题,我从另一个用于复杂并行化进程的脚本中复制了一些工作,似乎完全没有延迟扩展。我刚刚修复了它,并证明它对我自己有效。好的,的确-效果很好:)