@echo off
setlocal enabledelayedexpansion
title Make KF2 Shortcut
1>nul 2>&1( fsutil file createnew test.txt 0 ) && ( del test.txt ) || ( title ERROR - No write permission & echo ERROR^: can't write here. Check write access. & echo & pause & goto :eof)
:EnterPath
set p=
echo Providing game path is required for shortcut to have KF2 icon. It's optional.
echo.
set /p p="(optional) enter game path (example D:\Games\Steam\steamapps\common\killingfloor2) "
if not "%p%"=="" (
for %%F in ("%p%") do (
set kf2folder=%%~F
if "!kf2folder:~-1!"=="/" set "kf2folder=!kf2folder:~0,-1!"
if "!kf2folder:~-1!"=="\" set "kf2folder=!kf2folder:~0,-1!"
if "!kf2folder:~0,1!"==" " set "kf2folder=!kf2folder:~1!"
if exist "!kf2folder!\Binaries\Win64\KFGame.exe" (
set parse_icon=$s.IconLocation='!kf2folder!\Binaries\Win64\KFGame.exe,0';
goto :MakeShortcut
)
)
)
:MakeShortcut
powershell "$s=(New-Object -COM WScript.Shell).CreateShortcut('KF2.lnk');$s.TargetPath='%windir%\explorer.exe';$s.Arguments='steam://rungameid/232090';$s.WorkingDirectory='%windir%';%parse_icon%$s.Save()"