Windows でユーザーのデスクトップ フォルダーを検索するバッチ ファイルを作成しました。
for /F "skip=2 tokens=3* delims= " %%a in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') do set DESKTOP=%%a
デスクトップ フォルダが にない場合でも、C:\Users\User\Desktop
動作して正しいフォルダを返します。たとえば、私の場合はE:\User\Desktop
. デスクトップ フォルダが にある場合、C:\Users\User\Desktop
上記のスクリプトは%USERPROFILE%\Desktop
. スクリプトの後半で、デスクトップに新しいファイルを作成しようとします。最初のオプションでE:\User\Desktop
は、実際のディレクトリであるため機能します。2番目のものでは、明らかに%USERPROFILE%\Desktop
ディレクトリとしてカウントされないため、そうではありません。
echo start javaw -jar "path/to/program.jar" >"%DESKTOP%\Start program.bat"
両方の状況で動作させるにはどうすればよいですか?
やっている
if /I "%DESKTOP%" EQU "%USERPROFILE%\Desktop"
と同じなので役に立ちません。
if /I "%DESKTOP%" EQU "C:\Users\User\Desktop"