0

我正在尝试制作一个我的世界批处理程序,它将找到并重置您的我的世界。问题是,我要发布它,每个人都会有不同的用户名,并不是所有的人都会有 Vista+ 下的用户C:\Users\Username。有些人会把它放在下面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上班。我使用了错误的命令吗?我一直在尝试研究它,但找不到有效的解决方案。我在这里先向您的帮助表示感谢!

PS如果你不知道我会寻找哪个隐藏文件夹C:\Users\Username\Appdata\Roaming\.minecraft

我在执行 FOR 时一直遇到这个问题。即使在暂停的情况下,它也会关闭 cmd 窗口。如果我在没有批处理脚本的情况下手动执行(输出到 cmd.exe),那么它会说%%Find was unexpected at this time.我该如何解决这个问题?

4

4 回答 4

3

实际上,您所需要的只是%APPDATA%环境变量。它可以在 XP、Vista、7 或 8 上运行(我敢说可能是 Windows NT 和 2000)。 %APPDATA%\.minecraftc:\users\<username>\appdata\roaming\.minecraft在 Vista+ 或c:\documents and settings\<username>\application data\.minecraftXP- 上转换。

因此,只需%APPDATA%\.minecraft在需要引用.minecraft文件夹的任何地方使用(可能引用)。

有关更多有用的系统变量名称,请参阅Windows 环境变量的此页面。

于 2013-03-13T13:07:03.820 回答
0
for /f "delims=" %%i in ( ' dir /b /ah /ad /s \.minecraft ' ) do set target=%%i
echo %target%

where \ is the directory where you start your search.

于 2013-03-13T13:09:06.897 回答
0

尝试这个

FOR /D %%F in ('dir/a C:\Users\%UserProfile%\') DO echo %%F 
于 2013-03-13T12:13:22.240 回答
0

谢谢你们所有的答案!我发现(感谢@AndriyM)你只能在 %% 之后使用 1 个字母。那是我的问题,因为我正在尝试执行 %%Find 并且我必须执行 %%F 并更改变量。谢谢各位帮忙!

于 2013-03-14T12:06:27.393 回答