%USERPROFILE% 变量不起作用

%USERPROFILE% 变量不起作用

如果我尝试使用命令在命令提示符中创建文件

mkdir C:\Users\Tristan\AppData\Roaming\modinstaller\recovery
mkdir C:\Users\Tristan\AppData\Roaming\modinstaller\mods

我的电脑可以毫无问题地创建这些文件。

但是,如果我使用命令

mkdir C:\Users\%USERPROFILE%\AppData\Roaming\modinstaller\recovery
mkdir C:\Users\%USERPROFILE%\AppData\Roaming\modinstaller\mods

命令提示符响应

The filename, directory name, or volume label syntax is incorrect.

我该如何解决?

答案1

%UserProfile%变量是一个特殊的系统范围的环境变量,它本身就是完整的。它包含%SystemDrive%\Users\{username}

看看这个奇妙的表格重点介绍了 Windows XP (NT5) 和 Windows Vista/7/8 (NT6) 中变量之间的差异

尝试

mkdir %userprofile%\AppData\Roaming\modinstaller\mods

其值是当前用户的配置文件目录的位置,在该目​​录中可以找到该用户的 HKEY_CURRENT_USER (HKCU) 注册表配置单元 (NTUSER)。

答案2

我认为你混淆了变量%USERPROFILE%%USERNAME%

默认情况下,%USERPROFILE%C:\Users\%USERNAME%指向同一位置。由于不能保证这是正确的,因此使用%USERPROFILE%是一种更可靠的方法。

一般来说,在调试如下命令时

mkdir C:\Users\%USERPROFILE%\AppData\Roaming\modinstaller\recovery

您的第一步应该是添加echo

命令

echo mkdir C:\Users\%USERPROFILE%\AppData\Roaming\modinstaller\recovery

将显示以下内容:

mkdir C:\Users\C:\Users\Tristan\AppData\Roaming\modinstaller\recovery

这显然不是你想要的。

您还可以%USERPROFILE%通过执行

set USERPROFILE

要查看所有当前定义的环境变量,请执行

set

答案3

实际上,楼主不仅在寻找 C:\Users\Someone,还在寻找该用户的 AppData\Roaming 文件夹。因此,最快的路径是使用

%APPDATA%

在原帖的例子中,他会使用

mkdir %APPDATA%\modinstaller\recovery
mkdir %APPDATA%\modinstaller\mods

答案4

%USERPROFILE% 变量通常包含 C:\Users\AccountName,因此正确的用法是

mkdir %USERPROFILE%\AppData\Roaming\modinstaller\recovery

相关内容