2016-12-07 2 views
0

У меня есть .bat-файл, который открывает локальный файл в браузере. Путь к локальному файлу содержит пробелы (не по своему выбору):Пробелы в имени локального файла заменяются нулями при открытии в браузере

file:///N:/Users/Firstname%20Lastname/Placeholder%20Report%20Name.html

Однако браузер изменяет это:

file:///N:/Users/Firstname0Lastname/Placeholder0Report0Name.html

%20 заменяется 0 вместо , поэтому ссылка не работает.

Я попытался заменить file:/// на file:\\ и другим браузером, но результат тот же. Что мне не хватает? Я не могу изменить имя или путь к целевому файлу.

+2

Знак '%' имеет специальное значение в пакетных файлах. Вам нужно удвоить его (escaping), поэтому 'file: /// N:/Users/Firstname% 20Lastname/Placeholder% 20Report% 20Name.html' должен быть 'file: /// N:/Users/Firstname %% 20Lastname/Заполнитель %% 20Report %% 20Name.html'. – elzooilogico

ответ

2

Вы должны избежать % с другим, как это:

file:///N:/Users/Firstname%20Lastname/Placeholder%20Report%20Name.html 

->

file:///N:/Users/Firstname%%20Lastname/Placeholder%%20Report%%20Name.html 

Причиной этого является тот факт, что %2 обозначает второй аргумент, который был отправить в командный файл:

yourBat.bat first second 

приведет к вашему просмотру Путь г неоспоримым

file:///N:/Users/Firstnamesecond0Lastname/Placeholdersecond0Reportsecond0Name.html 

, как %2 получает заменить словом второй.

С другой % добавлено, что это будет экранировано.

Смежные вопросы