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