批处理文件运行.exe并替换文件 - 在.exe关闭交换现有文件

时间:2016-02-14 20:59:06

标签: windows batch-file

我道,我有点生疏,因为我在4年多没有触及过批次....

当我启动程序时,我正在尝试更换steam文件夹中的声音,这是通过延迟一两秒来成功实现的。然而,在发射蒸汽CRC检查损坏/丢失的文件,因此我松开了我的替换声音。为了解决这个问题,我在应用程序关闭时创建了另一个批处理文件以重新替换旧文件,因此下一次启动蒸汽很高兴!

//replace our unwanted sound
    "C:\Program Files (x86)\Steam\Steam.exe"
pause 
timeout /t 4
xcopy "C:\Users\thoma\Desktop\steam sounds\message.wav" "C:\Program Files (x86)\Steam\friends\message.wav" /Y

- 这些是单独的文件。

 //re-add our unwanted sound once the process is closed
start "" /W "C:\Program Files (x86)\Steam\Steam.exe"

xcopy "C:\Program Files (x86)\Steam\friends\message.wav" "C:\Users\thoma\Desktop\steam sounds\message.wav" /Y

1 个答案:

答案 0 :(得分:0)

我会将Steam message.wav的副本保存到文件夹中,然后在启动Steam.exe之前将其复制到原始版本中(可能会节省CRC检查的时间)。 然后在它启动后,在.wav文件中有脚本副本。

另外只是一个注释,//在批处理文件中没有注释任何东西只会抛出错误,在文本前使用REM命令。

所以你的脚本看起来像这样:

@echo off
SET STEAMPATH = "C:\Program Files (x86)\Steam"
SET STEAM_WAV = "C:\Users\thoma\Desktop\steam sounds\original\message.wav"
SET MY_WAV = "C:\Users\thoma\Desktop\steam sounds\message.wav"
ECHO Putting original file in (to speed up CRC check)...
xcopy %STEAM_WAV% %STEAMPATH%\friends\message.wav /y /c
ECHO Starting Steam...
start "" "%STEAMPATH%\Steam.exe"
ECHO Waiting for Steam.exe to start...
:waiting
For /F "tokens=1" %%i In ('Tasklist /NH /FI "IMAGENAME EQ steam.exe"') Do Set sb=%%i
If /i %sb%==steam.exe (goto copyfile) Else (goto waiting)
ECHO Copying custom wav in...
:copyfile
xcopy %MY_WAV% %STEAMPATH%\friends\message.wav /y /c
ECHO DONE.....
TIMOUT /T 5

看看它是否适合你。