Writing a batch script

Manmohan P MManmohan P M
2 min read

Introduction

  • A batch file is basically the bash script for windows.

  • It uses the ".bat" extension.

  • It basically runs a set of shell commands on the terminal.

  • So my friend wanted to record his gameplay but was too lazy to open obs and record every time so he asked me for a solution.

  • My initial thought was a python script but with further research found out that it's easier to make a batch script.

The batch script

  • First we have to turn echo off else each command will be seen in the terminal opened.

  • Then we have give it a title, this is optional but wtever.

  • we then set a label and a variable with the name of he game like so.

@echo off

title obs_starter
:check
set "filename=VALORANT.exe"
  • we will then check if valorant is running and use if else to do what we need
tasklist /FI "IMAGENAME eq %filename%" 2>NUL | findstr /I /L /C:"%filename%"
if %errorlevel% equ 0 (
    start "" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\OBS Studio\OBS Studio (64bit).lnk" --startrecording -m
    goto end
) else (
    echo The file %filename% is not open.
)
  • tasklist displays all running processes from which we retrieve the valorant process and if it is open we start obs and goto the end.

  • else we simply echo that it is not open

  • after this we will wait for 5 seconds using the timeout command and then go back to the check flag at the beginning

timeout /t 5 /nobreak
goto check
:end
  • This should run obs and close itself when you start valorant.

Making it invisible

  • One way i found to hide the terminal window that opens is to make it run from a vbscript.

  • This is anothe scripting language developed by microsoft.

  • I dont fully understand the code here but this is it.

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\Users\Manmohan\Documents\program\batch\obs_start.bat" & Chr(34), 0
Set WshShell = Nothing
  • This will run the bat file without opening the terminal.

Conclusion

  • This was the first time i tried doing anything using batch scripts.

  • right now i am also trying to create a script to check if valorant is running, so that when you close it, it runs this batch process again so that on reopening the game it still opens obs.

  • I am having some trouble with that but i hope fix it soon.

  • we can now just add this to the startup apps and bam you dont even have to think about it.

  • Thank you for reading and ill keep imporving.

0
Subscribe to my newsletter

Read articles from Manmohan P M directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Manmohan P M
Manmohan P M