Есть ли ярлык для папки на рабочем столе в пакете Windows?

C:\Documents and Settings\Administrator\Desktop

Я не хочу вводить выше каждый раз, чтобы обратиться к файлу на рабочем столе

4 ответа

Ты можешь использовать "%USERPROFILE%\Desktop" но я не знаю, из какой версии Windows она встроена.

Если вы хотите настоящую папку, в которой находится Desktop, используйте этот код в bach.

for /F "skip=2 tokens=3* delims= " %%a in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ Папки пользовательских оболочек" /v Desktop') do set DesktopFolder="%% в"

Это требует наличия reg.exe (опять же, я не знаю, в какой версии Window он есть), и для переменной DesktopFolder будет задан путь к рабочему столу.

Гибрид Андерса может быть немного более простым и читаемым, с помощью метода, описанного здесь гибридом сценариев Тома Лаведаса.

@if (@X)==(@Y) @goto :Dummy @end/* Batch part

@echo off
SETLOCAL ENABLEEXTENSIONS
for /f "delims=" %%x in ('cscript //E:JScript //nologo "%~f0"') do set desk=%%x
echo desktop path is %desk%
goto :EOF

***** Now JScript begins *****/
WScript.Echo(WScript.CreateObject("Shell.Application").Namespace(16).Self.Path);

Если вам абсолютно необходим пакетный файл, но вы хотите использовать возможности хостинга сценариев Windows, вы можете попробовать WSH/ пакетный гибрид

Пакетный /WSH гибрид:

@if (1==1) @if(1==0) @ELSE
@echo off&SETLOCAL ENABLEEXTENSIONS
for /f "delims=" %%x in ('cscript //E:JScript //nologo "%~f0"') do set desk=%%x
echo desktop path is %desk%
@goto :EOF
@end @ELSE
WScript.Echo(WScript.CreateObject("Shell.Application").Namespace(16).Self.Path);
@end

Смотрите ShellSpecialFolderConstants, если вам нужно получить путь к какой-либо другой папке оболочки

set UserDesktop=%UserProfile%\Desktop

if exist %Public% (
    set SharedDesktop=%Public%\Desktop
) else (
    set SharedDesktop=%AllUsersProfile%\Desktop
)

Так что теперь вы можете использовать локальные переменные

%UserDesktop% а также %SharedDesktop%

Первый случай SharedDesktop - для Vista, а выше - для XP

ps: перед использованием этих переменных вы должны заключить в кавычки "%UserDesktop%", потому что имя пользователя должно содержать пробелы, такие как...\Bill Gates\... или \Documents and settings\...

Другие вопросы по тегам