0

バックグラウンド

.minecraft'sフォルダを Windows ローミング フォルダに移動しようとしています。その後、元の位置に戻したいと思います。(私の目標は、セーブ/プレイヤーを切り替えるプロファイルシステムです)

何を間違っているのかわかりません。%CD%変数が移動コマンドと互換性がないのでしょうか? 私が得るエラーは「エラーの構文が正しくありません」です

コード

    @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
4

1 に答える 1

0

%cd% は現在のディレクトリです。ディレクトリを変更すると、常に変更されます。

C:\Users\syss>echo %cd%
C:\Users\syss

C:\Users\syss>cd ..

C:\Users>echo %cd%
C:\Users

C:\Users>

ご覧のとおり、すべての cd コマンドに %cd% を書き込む必要はありません。

バッチファイルが呼び出されるディレクトリが必要な場合:

set workingdir=%~dp0

%cd% の代わりに %workingdir% を使用します

また、標準のスラッシュ「/」ではなく、必ず Windows スラッシュ「\」を使用してください (6 行目を参照)。

于 2013-04-10T15:01:40.580 に答える