当我在网络驱动器上运行批处理文件时,我收到“UNC Paths not supported”错误。
我想将批处理文件的当前目录存储在变量中,这样我就可以在当前目录更改为“C:\ Windows”之前通过pushd
命令切换到它。
对不起,如果我错过了什么!
编辑:
下面是代码:
@echo off
SETLOCAL EnableExtensions
title School Minecraft Hunger Games Launcher
set appdata=%cd%\core
set usrname=%USERNAME%
:lol
cls
set choice=
echo -------------------------------------------------------------------------------
echo School Minecraft Launcher v4.2
echo Minecraft Version: 1.5.2
echo -------------------------------------------------------------------------------
echo Logging in with the name "%usrname%". Is this correct? (y/n)
set /p choice=
if "%choice%"=="y" goto check
if "%choice%"=="yes" goto check
if "%choice%"=="n" goto argue
if "%choice%"=="no" goto argue
echo.
echo That is not a recognized command, Press enter to try again.
pause > nul
goto lol
:argue
cls
set provide2=
echo To change your ingame username, please provide the override password:
echo.
echo Type "back" to cancel.
echo.
set /p provide2=Password:
if "%provide2%"=="changename" goto enternewname
if "%provide2%"=="back" goto lol
echo.
echo Incorrect Password.
echo.
echo Press enter to try again...
pause > nul
goto argue
:enternewname
cls
echo Please enter new name, then press enter:
set /p usrname=
goto lol
:check
cls
if "%usrname%"=="user1" set knee=watermelon
if "%usrname%"=="user2" set knee=computer
if "%usrname%"=="user3" set knee=fish
if "%usrname%"=="user4" set knee=kittens
:final
if "%knee%"=="" goto rungame
cls
set provide=
echo -------------------------------------------------------------------------------
echo School Minecraft Launcher v4a
echo Minecraft Version: 1.5.2
echo -------------------------------------------------------------------------------
echo You are trying to login as an admin. Please provide your password.
echo.
echo Username: %usrname%
set /p provide=Password:
if "%knee%"=="%provide%" goto rungame
echo.
echo Incorrect password.
echo.
echo Press enter to exit...
pause > nul
exit
:rungame
pushd "%appdata%\.minecraft\bin"
start javaw -cp minecraft.jar;lwjgl.jar;lwjgl_util.jar -Djava.library.path="natives" net.minecraft.client.Minecraft "%usrname%"
exit
只要您包含一个名为“core”的文件夹,其中包含游戏文件,就应该在您放置的任何位置运行。通常情况是:%cd%\core
。如果你向下看代码底部,你会看到它需要将目录更改为:%cd%\core\.minecraft\bin
以启动游戏......但是如果没有当前目录变量,我就无法做到。
答案 0 :(得分:3)
设置批处理文件的目录通常由
完成set "dirofbatch=%~dp0"
(包括终端 - \
)
APPDATA
是Windows的保留名称之一 - 由系统为每个BATCH会话建立。它的值可能是由某个进程假定的,并且您已设置为某个意外的位置。我建议你将变量名更改为其他名称。
同样地,choice
是一个批处理关键字 - 我建议你再选择一个名字。这可能实际上不会影响批次,只是避免陷阱。
答案 1 :(得分:0)
将此行添加为程序中的前几行之一(在访问任何文件/文件夹之前)。
pushd %~dp0