MOVE命令和批处理文件中的%CD%变量出现问题



背景

我正在尝试将.minecraft's文件夹移动到Windows漫游文件夹。之后,我想把它放回原来的位置。(我的目标是切换保存/玩家的配置文件系统)

我不明白我做错了什么——也许%CD%变量与move命令不兼容?我得到的错误是"错误的语法不正确"

代码

    @echo off
title .Minecraft switcher
echo welcome !
PING 1.1.1.1 -n 1 -w 1000 >NUL
md .minecrafts
cd %CD%/.minecrafts 
md temp
cd %CD%..
:3
cls
echo enter 1 to switch .minecrafts
echo enter 2 to create new subdir
set /p "In=:"
if %In%==1 goto :1
if %In%==2 goto :2
if %In%==3 goto :4
if %In%==5 goto :5
goto :3
:1
cls
echo enter folder name
echo folder list...
cd %CD%.minecrafts
dir /b
set /p "d=:"
MOVE %appdata%.minecraft %CD%temp
MOVE %CD%%d%.minecraft %appdata%
pause
MOVE %appdata%.minecraft %CD%%d%
MOVE %CD%temp.minecraft %appdata%
pause
goto :3
:2
cls
echo set folder name
set /p "name=:"
cd %CD%.minecrafts 
md %name%
cd %CD%..
pause
goto :3
:4
exit

%cd%是当前目录。如果您更改目录,它总是会更改。

C:Userssyss>echo %cd%
C:Userssyss
C:Userssyss>cd ..
C:Users>echo %cd%
C:Users
C:Users>

正如您所看到的,您不需要在每个cd命令上写入%cd%。

如果您想要调用批处理文件的目录:

set workingdir=%~dp0

然后使用%workingdir%而不是%cd%

还要确保使用Windows斜线"\",而不是标准斜线"/"(请参见第6行)

最新更新