Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 批处理-在';UNC错误';修改cd变量_Windows_Batch File - Fatal编程技术网

Windows 批处理-在';UNC错误';修改cd变量

Windows 批处理-在';UNC错误';修改cd变量,windows,batch-file,Windows,Batch File,在网络驱动器上运行批处理文件时,会出现“UNC路径不受支持”错误 我想将批处理文件的当前目录存储在一个变量中,以便在当前目录更改为“C:\Windows”之前,通过pushd命令切换到它 对不起,我错过了什么 编辑: 代码如下: @echo off SETLOCAL EnableExtensions title School Minecraft Hunger Games Launcher set appdata=%cd%\core set usrname=%USERNAME% :lol cls

在网络驱动器上运行批处理文件时,会出现“UNC路径不受支持”错误

我想将批处理文件的当前目录存储在一个变量中,以便在当前目录更改为“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

只要你有一个包含游戏文件的名为“核心”的文件夹,它就应该在你放的任何地方运行。通常是:
%cd%\core
。如果从代码底部往下看,您会发现需要将目录更改为:
%cd%\core\.minecraft\bin
,才能开始游戏。。。但是如果没有current directory变量,我就不能这样做。

设置批处理文件的目录通常由

set "dirofbatch=%~dp0"
(包括终端-
\

APPDATA
是windows的保留名称之一-由系统为每个批处理会话建立。它的值可能是由某个进程假定的,而您已将其设置为意外的位置。我建议你把这个名字改成别的名字


类似地,
choice
是一个批处理关键字-我建议您对名称进行另一个呃选择。这实际上可能不会影响批处理,只是为了避免陷阱。

将这一行添加为程序中的前几行之一(在访问任何文件/文件夹之前)


请将问题包括在批处理文件的相关部分中。询问您编写的代码的问题需要包括代码;如果你不告诉我们你在做什么,很难回答为什么它不工作的问题。可能是重复的我不认为它是重复的…哪一行出错?它认为当批处理文件启动时,它会注意到它在网络驱动器上运行,并吐出一个错误。或者,当您使用cd命令执行某些操作时,它会注意到UNC路径并给出错误信息。无论哪种方式,它都非常恼人:PMinecraft游戏玩家经常更改
APPDATA
变量,通常它是有效的。但要开始游戏,当前目录也必须设置为
..\.minecraft\bin
。我想,这可能是Java或Minecraft的问题,而不是第一批。谢谢!很好用!是的,将appdata变量更改为自定义位置是有意的,它允许游戏可移植,而不仅仅限于appdata文件夹@endro批处理代码底部的第三行将cd更改为游戏的bin文件夹,然后在下一行实际启动游戏本身。:)这是只推送bat文件还是整个文件夹?因为我需要它来容纳整个文件夹。出于教育原因,你应该添加3行。1.ECHO.CD=%CD%2。推3。ECHO.CD=%CD%您将看到原始当前目录是任意的,推送之后,当前目录将是您可能最初期望的目录(执行bat文件的目录)。
pushd %~dp0