我正在尝试制作一个可以找到并重置你的我的世界的Minecraft批处理程序。问题是,我将发布它,每个人都会有不同的用户名,并不是所有用户名都会在C:\Users\Username
下与用户一起使用Vista +。有些人会在C:\Documents and Settings\Username
或类似的情况下使用它。
这是我已有的代码。
@Echo off
set UserProfile = Jackson
set Find = Desktop
pause
FOR /D %%Find in ("C:\Users\%UserProfile%\") DO pause
这就是我所拥有的。显然是错的,但我需要一些帮助。是的,我明白,如果我要去那条路,它应该是set /p UserProfile = Insert username here
,但我有它进行测试。我无法让FOR
工作。我使用了错误的命令吗?我一直在努力研究它,但我找不到一个有效的解决方案。感谢您的帮助!
P.S。如果您不知道我将要查找的C:\Users\Username\Appdata\Roaming\.minecraft
执行FOR时我遇到了这个问题。在批处理中,即使暂停,也会关闭cmd窗口。如果我在没有批处理脚本的情况下手动执行(进入cmd.exe),那么它会显示%%Find was unexpected at this time.
如何解决这个问题?
答案 0 :(得分:3)
实际上,您只需要%APPDATA%
环境变量。它适用于XP,Vista,7或8(我敢说也可能是Windows NT和2000)。 %APPDATA%\.minecraft
会在Vista +上翻译为c:\users\<username>\appdata\roaming\.minecraft
,或在XP上翻译为c:\documents and settings\<username>\application data\.minecraft
。
因此,只需在需要引用%APPDATA%\.minecraft
文件夹的地方使用.minecraft
(可能引用)。
有关更多有用的系统变量名称,请参阅Windows Environment Variables上的此页面。
答案 1 :(得分:0)
试试这个
FOR /D %%F in ('dir/a C:\Users\%UserProfile%\') DO echo %%F
答案 2 :(得分:0)
for /f "delims=" %%i in ( ' dir /b /ah /ad /s \.minecraft ' ) do set target=%%i
echo %target%
其中\是您开始搜索的目录。
答案 3 :(得分:0)
谢谢大家的所有答案!我想通了(感谢@AndriyM)你只能在%%之后使用1个字母。这是我的问题,因为我试图做%% Find,我不得不做%% F并更改变量。谢谢大家的帮助!