2013-03-27 00:54:35 +0000 2013-03-27 00:54:35 +0000
18
18

%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.

我该如何解决这个问题?

答案 (4)

28
28
28
2013-03-27 00:59:51 +0000

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

请看这个奇妙的表格, 突出了windows XP(NT5)和Windows Vista/7/8(NT6)中变量的差异

试试

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

它的值是当前用户的配置文件目录的位置,在该目录中可以找到该用户的HKEY/_CURRENT/_USER(HKCU)注册表蜂巢(NTUSER)。

14
14
14
2013-03-27 01:13:49 +0000

我猜你把变量%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

这显然不是你想要的。

你也可以通过执行

set USERPROFILE

来查询%USERPROFILE%的值 要查看所有当前定义的环境变量,执行

set
```。
8
8
8
2015-09-10 13:24:01 +0000

实际上,OP似乎不仅仅是在找C:\Users\Someone,而是在找该用户的AppData/Roaming文件夹。所以,最快捷的方法是使用

%APPDATA%

在OP的例子中,他将使用

mkdir %APPDATA%\modinstaller\recovery
mkdir %APPDATA%\modinstaller\mods
```。
-1
-1
-1
2015-07-30 11:35:01 +0000

%USERPROFILE%变量通常包括C:\Users\AccountName,所以正确的用法是

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