如何保留蝙蝠文件快捷方式的原始目录?



>我创建了一个批处理文件,该文件在启动游戏之前备份了一些保存的游戏文件,这是脚本:

@echo off
set SaveGameLocation=C:GamesMK XBinariesRetail3DMGAMEPlayerremoteuser
:: 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:GamesMK XBinariesRetailMKX.exe"

这个批处理文件位于C:Save Game BackupMKX,所以我在桌面上创建了这个文件的快捷方式,问题是当前工作目录%cd%已从批处理文件位置更改为桌面,我知道我可以简单地将%cd%更改为C:Save Game BackupMKX但我总是在更改目录,我想要一个最终的解决方案,将快捷方式的文件位置保留为当前目录。

您不应该使用 %CD% ,这是当前目录,而是使用正在运行的批处理文件的驱动器和路径(包括尾部反斜杠)%~dp0

@Echo Off
Set "ExeLocation=C:GamesMK XBinariesRetail"
Set "SaveGameLocation=%ExeLocation%3DMGAMEPlayerremoteuser"
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

最新更新