
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
27.08.2012, 06:16
|
|||
|---|---|---|---|
Не работает сравнение строк в bat-файле |
|||
|
#18+
Суть в том, что бегая по файлам в каталоге хочу сравнить их имена со строкой и найти нужный. Код такой for %%f in (%dir%\!d!\*.dat) do ( set w=%%f set e=!w:~15,-4! if !e!=="income" ( echo "income1" ) else if !e!=="expense" ( echo "expense1" ) else echo !e! )Т.е. в каталоге есть файл с именем "income", значит в результате на екран должно вывестись "income1" и т.д. Но это сравнение почему то не работает и всегда выводится результат else, т.е. "income". Помогите пожалуйста с проблемой. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2012, 09:20
|
|||
|---|---|---|---|
Не работает сравнение строк в bat-файле |
|||
|
#18+
echo !e! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2012, 11:02
|
|||
|---|---|---|---|
|
|||
Не работает сравнение строк в bat-файле |
|||
|
#18+
А что мешает забодяжить простое: Код: sql 1. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2012, 11:40
|
|||
|---|---|---|---|
Не работает сравнение строк в bat-файле |
|||
|
#18+
Basil A. Sidorov, Не, ну это не соответствует условиям задачи) Я привел только часть кода, с найденными файлами я работаю. Поэтому мне надо найти пройтись по ВСЕМ файлам в каталоге, и при этом специфически обработать файл "income". Поэтому я и сравниваю имя файла со строкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2012, 12:43
|
|||
|---|---|---|---|
Не работает сравнение строк в bat-файле |
|||
|
#18+
Вот и поставь эхо, чтобы видеть, что же на самом деле там в переменной вместо ожидаемого income ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2012, 12:44
|
|||
|---|---|---|---|
Не работает сравнение строк в bat-файле |
|||
|
#18+
Akina, Так стоит уже в ветке else. И выводит все имена файлов по порядку, в том числе там есть и "income". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2012, 13:50
|
|||
|---|---|---|---|
|
|||
Не работает сравнение строк в bat-файле |
|||
|
#18+
smoykПоэтому мне надо найти пройтись по ВСЕМ файлам в каталоге, и при этом специфически обработать файл "income". Поэтому я и сравниваю имя файла со строкой.Ну и в чём проблема: Код: sql 1. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2012, 14:02
|
|||
|---|---|---|---|
|
|||
Не работает сравнение строк в bat-файле |
|||
|
#18+
Basil A. SidorovНу и в чём проблема:Пардон, логический прокол. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2012, 14:10
|
|||
|---|---|---|---|
|
|||
Не работает сравнение строк в bat-файле |
|||
|
#18+
smoyk, вы учитываете, что сравнение строк чуствительно к регистру? 'income' != 'Income' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2012, 14:14
|
|||
|---|---|---|---|
|
|||
Не работает сравнение строк в bat-файле |
|||
|
#18+
?smoyk, вы учитываете, что сравнение строк чуствительно к регистру? 'income' != 'Income' Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2012, 14:39
|
|||
|---|---|---|---|
Не работает сравнение строк в bat-файле |
|||
|
#18+
?, Все в нижнем регистре. Ключь /I соответственно не помог. Basil A. Sidorov, Ну вы другое решение предложили этого вопроса, может и стоить его конешно попробовать, но кто поручится, что "%B" == "%A" будет работать, если не работает !e!=="income"? Надо разобраться как нить, в чем причина... я думал мож какую мелочь не учел (ну типа регистра). Если не будет больше идей, куда смотреть, попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2012, 16:02
|
|||
|---|---|---|---|
Не работает сравнение строк в bat-файле |
|||
|
#18+
smoykСуть в том, что бегая по файлам в каталоге хочу сравнить их имена со строкой и найти нужный. Код такой for %%f in (%dir%\!d!\*.dat) do ( set w=%%f set e=!w:~15,-4! if !e!=="income" ( echo "income1" ) else if !e!=="expense" ( echo "expense1" ) else echo !e! )Т.е. в каталоге есть файл с именем "income", значит в результате на екран должно вывестись "income1" и т.д. Но это сравнение почему то не работает и всегда выводится результат else, т.е. "income". Помогите пожалуйста с проблемой. Заранее спасибо. Когда запускаете cmd, ключ /V:ON указываете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2012, 16:13
|
|||
|---|---|---|---|
|
|||
Не работает сравнение строк в bat-файле |
|||
|
#18+
smoykНу вы другое решение предложили этого вопроса, может и стоить его конешно попробовать, но кто поручится, что "%B" == "%A" будет работать, если не работает !e!=="income"?Моё решение гарантировано будет работать, т.к. не зависит от "досрочного развёртывания" переменных. Но это - решение другой задачи, если я правильно понял вашу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2012, 17:21
|
|||
|---|---|---|---|
|
|||
Не работает сравнение строк в bat-файле |
|||
|
#18+
А почему вы решили, что e=!w:~15,-4! выделит имя файла? Расширение в конце строки отсечено правильно, а в начале строго 15 символов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2012, 17:29
|
|||
|---|---|---|---|
Не работает сравнение строк в bat-файле |
|||
|
#18+
else echo *!e!* ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2012, 17:51
|
|||
|---|---|---|---|
|
|||
Не работает сравнение строк в bat-файле |
|||
|
#18+
А вообще, чтобы не извращаться, лучше "использовать подпрограммы": Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.08.2012, 20:51
|
|||
|---|---|---|---|
Не работает сравнение строк в bat-файле |
|||
|
#18+
smoyk, помедетируй вот над этим: Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
28.08.2012, 05:50
|
|||
|---|---|---|---|
Не работает сравнение строк в bat-файле |
|||
|
#18+
x1ca4064, Да. Basil A. Sidorov, Я понимаю, что решений у задачи может быть много, но самое простое все таки через условный оператор) White Owl, Спасибо большое, я достиг просветления!) Всем спасибо, кто откликнулся и помогал советами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.12.2012, 20:58
|
|||
|---|---|---|---|
|
|||
Не работает сравнение строк в bat-файле |
|||
|
#18+
smoyk мог и поделиться в чем была проблема. я думаю, что при сравнении if !e! == "income", двойные кавычки были лишними, т.к. упоминается, что income это имя файла, а содержать двойных кавычек оно явно не может. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=16&mobile=1&tid=1342017]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
187ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 539ms |

| 0 / 0 |
