Есть ли ярлык для папки на рабочем столе в пакете Windows? - PullRequest
5 голосов
/ 07 апреля 2010
C:\Documents and Settings\Administrator\Desktop

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

Ответы [ 4 ]

8 голосов
/ 07 апреля 2010

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

Если вам нужна папка real , в которой находится рабочий стол, используйте этот код в bach

для / F "skip = 2 токена = 3 * delims =" %% a в ('Reg запрос «HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ User Папки оболочки "/ v Desktop ') сделать DesktopFolder = "%% символ"

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

6 голосов
/ 14 апреля 2011

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

@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);
1 голос
/ 29 октября 2012
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 \ ...

1 голос
/ 07 апреля 2010

Если вам абсолютно необходим пакетный файл, но вы хотите использовать возможности хоста сценариев 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 , если вам нужно получить путь к другой папке оболочки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...