Как сохранить исходный каталог ярлыка бат-файла? - PullRequest
0 голосов
/ 06 января 2019

Я создал командный файл, который создает резервные копии некоторых сохраненных игровых файлов перед запуском игры, это скрипт:

@echo off
set SaveGameLocation=C:\Games\MK X\Binaries\Retail\3DMGAME\Player\remote\user

:: variables
set drive=%cd%\Backup
set dateNtime="%date:~0,2%-%date:~3,2%-%date:~6,6%_%time:~0,2%-%time:~3,2%"
set backupcmd=xcopy /s /c /d /e /h /i /r /k /y

echo ### Backing up your Sites directory...
%backupcmd% "%SaveGameLocation%" "%drive%\%dateNtime%"

"C:\Games\MK X\Binaries\Retail\MKX.exe"

Этот пакетный файл находится в C:\Save Game Backup\MKX, поэтому я создал ярлык этого файла на рабочем столе, проблема в том, что текущий рабочий каталог %cd% изменил местоположение командного файла на рабочий стол, я знаю что я могу просто изменить %cd% на C:\Save Game Backup\MKX, но я всегда изменяю каталог, и я хочу получить окончательное решение, которое сохраняет расположение файла ярлыка в качестве текущего каталога.

1 Ответ

0 голосов
/ 06 января 2019

Вы не должны использовать %CD%, , который является текущим каталогом , а вместо этого использовать %~dp0 , который является диском и путем (включая обратную косую черту) , запущенный пакетный файл.

@Echo Off
Set "ExeLocation=C:\Games\MK X\Binaries\Retail"
Set "SaveGameLocation=%ExeLocation%\3DMGAME\Player\remote\user"
Set "drive=%~dp0Backup"
Set "backupcmd=XCopy /C /D /E /H /I /K /R /Y"

Set "dNow=%DATE%"
Set "tNow=%TIME%"
Set "dateNtime=%dNow:~0,2%-%dNow:~3,2%-%dNow:~6,6%_%tNow:~0,2%-%tNow:~3,2%"

Echo ### Backing up your Sites directory...
%backupcmd% "%SaveGameLocation%" "%drive%\%dateNtime%"

Start /D "%ExeLocation%" MKX.exe
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...