Где виндоз хранит "локализованные" названия "Desktop" итп

Vyacha

Нужно в батнике скопировать файл на десктоп и в стартменю:
Copy /Y "O:\orant\Links" "%allusersprofile%\Desktop"
Copy /Y "O:\orant\Links" "%allusersprofile%\Start Menu\Programs"
- работает только в английской версии.
- как сделать универсально?

klyv

1) - в русской такая переменная тоже актуальна
2) - именно так и сделать

maggi14

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

Vyacha

переменная allusersprofile то актуальна, конечно. А вот Desktop в русской версии называется "Рабочий стол"

Vyacha

Хорошо, а как это можно использовать в батфайле?

maggi14

а) можно экспортировать ветвь реестра, а затем прогрепить;
б) можно написать маленькую утилитку на нормальном языке программирования.

ava3443

в) использовать Windows Scripting Host

0000

Вот VBScript (сохрани код в <filename>.vbs) который делает то что тебе надо.
Вызывать его можно и из батника просто по имени

set objWSHShell = WScript.CreateObject("WScript.Shell")
set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile "O:\orant\Links\*.*", objWSHShell.SpecialFolders("AllUsersDesktop" True
objFSO.CopyFile "O:\orant\Links\*.*", objWSHShell.SpecialFolders("AllUsersPrograms" True

Vyacha

Спасибо, пригодилось ...

vall

можно просто проверить в начале батника какой из каталогов (русский|ангийский) есть и определить переменные с их именами.

kruzer25

Это не тру... решение - совершенно не универсальное...
Оставить комментарий
Имя или ник:
Комментарий: