web-dev-qa-db-ja.com

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

どうすれば修正できますか?

18
user210720

%UserProfile%変数は、それ自体で完全な特殊なシステム全体の環境変数です。を含む %SystemDrive%\Users\{username}

この素晴らしい表を参照してください windowsの変数間の違いを強調表示XP(NT5)とWindows Vista/7/8(NT6)

試す

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

その値は、現在のユーザーのプロファイルディレクトリの場所であり、ユーザーのHKEY_CURRENT_USER(HKCU)レジストリハイブ(NTUSER)が見つかります。

29
G Koe

変数%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
15
Dennis

実際には、OPはC:\ Users\Someoneだけでなく、そのユーザーのAppData\Roamingフォルダーも探しているようです。だから、使用するための最短経路

%APPDATA%

OPの例では、彼は

mkdir %APPDATA%\modinstaller\recovery
mkdir %APPDATA%\modinstaller\mods
8
Speedbird186