10582 / 5545 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
|
||||||
1 | ||||||
Универсальный способ определения расположения пользовательских папок17.11.2015, 23:43. Показов 693. Ответов 4
Метки нет (Все метки)
Приветствую !
Вопрос: как правильно выудить из реестра инфорацию о расположении пользовательских папок ? на примере рабочего стола
%USERPROFILE%\Рабочий стол или %USERPROFILE%\Desktop Зависимости от версии ОС Вопрос: Можно ли считать этот способ правильным ? А конкретно, хотелось бы подстраховаться от наличия в пути русских символов, пробелов и спецсимволов. Пока косяков не было. Заранее спасибо.
0
|
17.11.2015, 23:43 | |
Ответы с готовыми решениями:
4
Универсальный способ чтения DBF Универсальный способ вставить видео на сайте универсальный способ чтения/создания файла Универсальный способ проверки группы функций |
3460 / 1998 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
|
|
18.11.2015, 04:51 | 2 |
Ну если выводится имя "Рабочий стол", то, очевидно, и другие кириллические символы в пути не будут искажаться. Чтобы застраховаться от случайных пробелов в конце значения переменной, лучше писать set "DesktopFolder=%%J" , хотя и сам часто этим пренебрегаю.Раскрывать переменную в кавычках: "%DesktopFolder%" .Тот же принцип -- раскрывать переменную в кавычках. Для вывода на экран без кавычек можно использовать конструкцию cmd/v/c echo !DesktopFolder! .
2
|
10582 / 5545 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
|
|||||||||||
18.11.2015, 05:13 [ТС] | 3 | ||||||||||
А вот еще вопрос по теме: почему происходит вот так, и как с этим бороться ?
Батник в 866
Тоже в 866
А на семерке таких исхитрений не требуется. Чего я не знаю ? )
0
|
Покинул форум
3672 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
|
||||||
18.11.2015, 10:36 | 4 | |||||
vavun, как вариант:
Код
enum { ssfDESKTOP = 0, ssfPROGRAMS = 2, ssfCONTROLS = 3, ssfPRINTERS = 4, ssfPERSONAL = 5, ssfFAVORITES = 6, ssfSTARTUP = 7, ssfRECENT = 8, ssfSENDTO = 9, ssfBITBUCKET = 10, ssfSTARTMENU = 11, ssfDESKTOPDIRECTORY = 16, ssfDRIVES = 17, ssfNETWORK = 18, ssfNETHOOD = 19, ssfFONTS = 20, ssfTEMPLATES = 21, ssfCOMMONSTARTMENU = 22, ssfCOMMONPROGRAMS = 23, ssfCOMMONSTARTUP = 24, ssfCOMMONDESKTOPDIR = 25, ssfAPPDATA = 26, ssfPRINTHOOD = 27, ssfLOCALAPPDATA = 28, ssfALTSTARTUP = 29, ssfCOMMONALTSTARTUP = 30, ssfCOMMONFAVORITES = 31, ssfINTERNETCACHE = 32, ssfCOOKIES = 33, ssfHISTORY = 34, ssfCOMMONAPPDATA = 35, ssfWINDOWS = 36, ssfSYSTEM = 37, ssfPROGRAMFILES = 38, ssfMYPICTURES = 39, ssfPROFILE = 40, ssfSYSTEMx86 = 41, ssfPROGRAMFILESx86 = 48 } ShellSpecialFolderConstants;
2
|
10582 / 5545 / 864
Регистрация: 07.04.2013
Сообщений: 15,660
|
|||||||||||
19.11.2015, 00:45 [ТС] | 5 | ||||||||||
А вот еще нюанс, на который не обратил внимания ввиду того, что у меня рабочий стол находится не в дефолтном расположении.
Если использовать
По умолчанию %USERPROFILE%\Desktop И переменная DesktopFolder принимает значение %USERPROFILE%\Desktop вместо C:\Users\User\Desktop А если использовать
Почему ? Добавлено через 5 минут А, все понял, не туда смотрел. call
0
|
19.11.2015, 00:45 | |
19.11.2015, 00:45 | |
Помогаю со студенческими работами здесь
5
LinqToXML -> TreeView. Есть ли универсальный способ? Создать структуру расположения папок Перенос пользовательских папок в другое место Универсальный способ передачи данных из дочернего окна, Родительскому Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |