Как решить вопрос с двойным слешем в пути
Доброго вечера! Подскажите пожалуйста как решить вопрос с двойным слешем в пути:
Код:
@echo off
Set "b="(new-object -COM 'Shell.Application').BrowseForFolder(0,'%1',0x200,0).self.path""
For /f "usebackq delims=" %%# in (`PowerShell %b%`) do set "Folder=%%#"
If "%Folder%"=="" (Goto Choice & Exit)
@echo %Folder%
set "FolderEnd=%Folder%\folder1"
@echo %FolderEnd%
pause
Кратко изложу суть, если указать корень диска, путь будет D:\\, а если к примеру D:\FolderTest то путь будет правильный без двойного \. Как можно решить этот вопрос?
|
Цитата:
Цитата a1ek9
если указать корень диска »
|
Указать где?
|
при запуске появляется окно выбора директории.. если указать корень диска будет двойной слеш, если путь до папки на диске, слеш будет нормальным.
|
Цитата:
Цитата a1ek9
если указать корень диска будет двойной слеш, если путь до папки на диске, слеш будет нормальным. »
|
По той причине, что пути, например:
, не существует.
Как вариант проверяйте последний символ, и в зависимости от условия присваивайте переменной нужное значение:
Код:
@echo off
Set "b="(new-object -COM 'Shell.Application').BrowseForFolder(0,'%1',0x200,0).self.path""
For /f "usebackq delims=" %%# in (`PowerShell %b%`) do set "Folder=%%#"
If "%Folder%"=="" (Goto Choice & Exit)
@echo %Folder%
set "FolderEnd=%Folder%\folder1"
If "%Folder:~-1%" EQU "\" set "FolderEnd=%Folder%folder1"
@echo %FolderEnd%
pause
|
Цитата:
Цитата NickM
По той причине, что пути, например: »
|
Но по факту существует ведь)
Цитата:
Цитата NickM
Как вариант проверяйте последний символ, и в зависимости от условия присваивайте переменной нужное значение: »
|
Благодарочка :up
|
Цитата:
Цитата a1ek9
Но по факту существует ведь) »
|
D: - это, назовём словом диск, а D:\ - это путь (корневой каталог) на диске D.
Цитата:
SYSTEMDRIVE
Диск, на котором хранится папка Windows. Это значение является именем диска, а не именем папки (C: не C:\).
|
|
Время: 06:22.
© OSzone.net 2001-