Batch file 如何保留bat文件的原始目录';什么是捷径?

Batch file 如何保留bat文件的原始目录';什么是捷径?,batch-file,Batch File,我创建了一个批处理文件,在启动游戏之前备份了一些保存的游戏文件,以下是脚本: @echo关闭 设置SaveGameLocation=C:\Games\MK X\Binaries\Retail\3DMGAME\Player\remote\user ::变量 设置驱动器=%cd%\Backup set dateNtime=“%date:~0,2%-%date:~3,2%-%date:~6,6%\uu%time:~0,2%-%time:~3,2%” 设置backupcmd=xcopy/s/c/d/e/

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

@echo关闭
设置SaveGameLocation=C:\Games\MK X\Binaries\Retail\3DMGAME\Player\remote\user
::变量
设置驱动器=%cd%\Backup
set dateNtime=“%date:~0,2%-%date:~3,2%-%date:~6,6%\uu%time:~0,2%-%time:~3,2%”
设置backupcmd=xcopy/s/c/d/e/h/i/r/k/y
echo####备份您的站点目录。。。
%backupcmd%%SaveGameLocation%“%drive%\%dateNtime%”
“C:\Games\MK X\Binaries\Retail\MKX.exe”

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

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

@Echo关闭
设置“ExeLocation=C:\Games\MK X\Binaries\Retail”
设置“SaveGameLocation=%ExeLocation%\3DMGAME\Player\remote\user”
设置“驱动器=%~dp0Backup”
设置“backupcmd=XCopy/C/D/E/H/I/K/R/Y”
设置“dNow=%DATE%”
设置“tNow=%TIME%”
设置“dateNtime=%dNow:~0,2%-%dNow:~3,2%-%dNow:~6,6%\u%tNow:~0,2%-%tNow:~3,2%”
Echo####备份您的站点目录。。。
%backupcmd%%SaveGameLocation%“%drive%\%dateNtime%”
启动/D“%ExeLocation%”MKX.exe

您不应该使用当前目录
%CD%
,而应该使用正在运行的批处理文件的驱动器和路径
%~dp0

@Echo关闭
设置“ExeLocation=C:\Games\MK X\Binaries\Retail”
设置“SaveGameLocation=%ExeLocation%\3DMGAME\Player\remote\user”
设置“驱动器=%~dp0Backup”
设置“backupcmd=XCopy/C/D/E/H/I/K/R/Y”
设置“dNow=%DATE%”
设置“tNow=%TIME%”
设置“dateNtime=%dNow:~0,2%-%dNow:~3,2%-%dNow:~6,6%\u%tNow:~0,2%-%tNow:~3,2%”
Echo####备份您的站点目录。。。
%backupcmd%%SaveGameLocation%“%drive%\%dateNtime%”
启动/D“%ExeLocation%”MKX.exe

%cd%
替换为
%~dp0
在这种情况下适用于文件夹,它是否可以用于文件?将
%cd%
替换为
%~dp0
在这种情况下适用于文件夹,它是否可以用于文件?