C:\Documents and Settings\Administrator\Desktop
Я не хочу каждый раз набирать выше, чтобы ссылаться на файл на рабочем столе
C:\Documents and Settings\Administrator\Desktop
Я не хочу каждый раз набирать выше, чтобы ссылаться на файл на рабочем столе
Вы можете использовать "%USERPROFILE%\Desktop"
, но я не знаю, из какой версии Windows он встроен.
Если вам нужна папка реальная, где находится Рабочий стол, то используйте этот код в файле bach
для/F "skip = 2 tokens = 3 * delims =" %% a in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Папки с оболочкой" /v Desktop ') устанавливаются DesktopFolder = "%% A"
Для этого требуется, чтобы reg.exe был доступен (опять же, я не знаю, из какой версии Window он есть), и он установит переменную DesktopFolder в путь к рабочему столу.
Гибрид Anders может быть немного более простым и удобочитаемым, причем описанный здесь метод гибридный сценарий Тома Лаведаса.
@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/пакетный гибрид
Batch/WSH hybrid:
@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 \...