Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подскажите по параметрам функций BAT файла / 12 сообщений из 12, страница 1 из 1
06.11.2014, 18:01
    #38797613
iskatelsql
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по параметрам функций BAT файла
Столкнулся с проблемой:

Код: plaintext
1.
2.
set str="a%20b"
echo %str% 



%2 проглатывается, и в выводе остается "a0b"

такая же ерунда получается если данную строку передать как параметр функции.

Проблема в том что на диске есть папки с такими именами, и если

Код: plaintext
1.
for /d %%i in(*) do echo %%i


выведет все правильно "a%20b"

то
Код: plaintext
1.
for /d %%i in(*) do call:func %%i



в функцию передает "попорченную" стороку "a0b"

Есть ли способ передать параметр в точности?
...
Рейтинг: 0 / 0
06.11.2014, 18:33
    #38797654
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по параметрам функций BAT файла
Код: sql
1.
2.
set str="a%%20b"
echo %str% 
...
Рейтинг: 0 / 0
06.11.2014, 18:57
    #38797683
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по параметрам функций BAT файла
White Owl,

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
@echo off
for /d %%i in (*.*) do (
  set A=%%i
  call :func
)
exit

:func
echo %A%
exit /b
...
Рейтинг: 0 / 0
06.11.2014, 21:06
    #38797782
iskatelsql
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по параметрам функций BAT файла
DarkMaster,

О таком варианте я знаю, но дело в том, что существуют некоторые наработки, готовые функции, многии не мои.

Перелопатить их все сложно, риск накосячить высок.

Может есть вариант както экранировать строку при передаче ее функции, чтобы там она воспринималась нормально?
...
Рейтинг: 0 / 0
06.11.2014, 21:15
    #38797786
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по параметрам функций BAT файла
iskatelsqlЕсть ли способ передать параметр в точности?А смысла нет. И где гарантии, что функции будут такие строки обрабатывать правильно?
...
Рейтинг: 0 / 0
06.11.2014, 21:42
    #38797804
iskatelsql
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по параметрам функций BAT файла
Relic Hunter,

я всеголишь мыслю логически:

1. текст инглиш, никаких проблем с кодепейдж
2. cmd разработано для управления виндой, разработчиками винды, и т.п
3. если возможно создавать файлы/дирректории с подобными названиями, то и обрабатывать их должно быть возможно

где то чтото мы упустили...
илли билли опять облажался?
...
Рейтинг: 0 / 0
06.11.2014, 22:12
    #38797825
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по параметрам функций BAT файла
cmd.exe - интерпретатор, "ломающийся" на куче разных вещей.
Хотите использовать именно его - экспериментируйте с проблемными случаями.
Хотите бОльшей предсказуемости - используйте другой скриптовый язык.
...
Рейтинг: 0 / 0
06.11.2014, 23:54
    #38797904
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по параметрам функций BAT файла
iskatelsqlгде то чтото мы упустили...
илли билли опять облажался?да, упустили. в вашем примере "%2" означает значение второго параметра командной строки. и если сделать по-вашему, то найдутся люди, которые будут ворчать: почему мои параметры перестали передавать значения в скрипт? поскольку 2-й параметр вы не передали "%2" заменилось на пусто, что логично.
...
Рейтинг: 0 / 0
06.11.2014, 23:59
    #38797906
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по параметрам функций BAT файла
если ваши функции вынести в отдельные файлы-сктипты и вызывать их, как "call func1.cmd "a%20" ", то "проглатываться" ничего не будет и сслылка на них %1 вернет такое-же значение, как и передали. и это правилный вариант :)
...
Рейтинг: 0 / 0
07.11.2014, 00:03
    #38797907
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по параметрам функций BAT файла
Необязательно "в отдельные" - call работает с метками внутри файла и понимает специальную метку EOF.
...
Рейтинг: 0 / 0
07.11.2014, 00:10
    #38797911
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по параметрам функций BAT файла
Basil A. SidorovНеобязательно "в отдельные" - call работает с метками внутри файла и понимает специальную метку EOF.Да, действительно. Ну вот видите, как все просто, когда с грамотой дружить?
...
Рейтинг: 0 / 0
07.11.2014, 01:00
    #38797965
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите по параметрам функций BAT файла
iskatelsql,

Ну я конечно могу придумать извращенное решение с передачей параметров через анальное отверстие, но оно будет никак не короче того метода, который я привел. % в cmd зарезервирован и обрабатывается по определенным правилам. Аминь.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подскажите по параметрам функций BAT файла / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]