web-dev-qa-db-ja.com

バッチファイル内のユーザーデスクトップのパス

バッチファイルの同じパスの下にあるフォルダーとファイルをデスクトップにコピーするために、単純なバッチファイルを実行しています。バッチファイルが置かれているパスを簡単に取得できます。

%~dp0

しかし、私はユーザーのデスクトップのパスを取得する方法を知りたい(私はWidows 7 Ultimateを使用しています)

助言がありますか?

9
Jack_111

これも大丈夫だと思う

%systemdrive%\Documents and Settings\All Users\Desktop

よろしく

1
user2747076

あなたは窓の環境下にいると思うので、%USERPROFILE%\Desktop 大丈夫なはず

66
Mali

これは、現在のユーザーのデスクトップの場所です。

%userprofile%\desktop
17
foxidrive

デスクトップの場所が別のフォルダーの場合のみ、これが正しい答えになります。

バッチ文字列:

for /f "usebackq tokens=3*" %%D IN (`reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop`) do set DESKTOP=%%D

V2(スペースを使用)2016年4月10日:

for /f "usebackq tokens=1,2,*" %%B IN (`reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop`) do set DESKTOP=%%D

ASCII以外のシンボルがある場合は、キリル文字の例として、ANSIエンコードをOEMに変換する必要もあります。

CHCP 1251 >Nul
for /f "usebackq tokens=1,2,*" %%B IN (`reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop`) do set DESKTOP=%%D
CHCP 866 >Nul
for /f "delims=" %%i IN ('echo %DESKTOP%') do set DESKTOP=%%i

次に使用します:

echo %DESKTOP%
15
kgimpel

答えを見つけた

Regedit /e /a dd.txt       

"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"

find /i  dd.txt  "Desktop" >d.txt
For /F  "tokens=2 delims==" %%a in (d.txt) do set mydesktop=%%a
3
Jack_111

Environ( "USERPROFILE")& "\ Desktop"

0
panchtox