バッチファイルの同じパスの下にあるフォルダーとファイルをデスクトップにコピーするために、単純なバッチファイルを実行しています。バッチファイルが置かれているパスを簡単に取得できます。
%~dp0
しかし、私はユーザーのデスクトップのパスを取得する方法を知りたい(私はWidows 7 Ultimateを使用しています)
助言がありますか?
これも大丈夫だと思う
%systemdrive%\Documents and Settings\All Users\Desktop
よろしく
あなたは窓の環境下にいると思うので、%USERPROFILE%\Desktop
大丈夫なはず
これは、現在のユーザーのデスクトップの場所です。
%userprofile%\desktop
デスクトップの場所が別のフォルダーの場合のみ、これが正しい答えになります。
バッチ文字列:
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%
答えを見つけた
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
Environ( "USERPROFILE")& "\ Desktop"