Есть ли ярлык для папки на рабочем столе в пакете 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\...