%USERPROFILE%变量不起作用


17

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

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.

我该如何解决?

Answers:


27

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

请参见这张奇妙的表格,其中突出显示了Windows XP(NT5)和Windows Vista / 7/8(NT6)中变量之间的差异

尝试

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

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


13

我假设您将变量%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

8

实际上,OP似乎不仅在寻找C:\ Users \ Someone,而且还在寻找该用户的AppData \ Roaming文件夹。因此,有最快的路径可以使用

%APPDATA%

在OP的示例中,他将使用

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

-1

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

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


在两个现有答案中都已经对此进行了解释。如果您喜欢它们,当您有15个代表时,尝试赢得一些声誉并投票给他们
gronostaj

欢迎来到超级用户!这将重复另一个答案,并且不会添加任何新内容。除非您确实有新的贡献,否则请不要发布答案。
DavidPostill
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.