|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Сравнение чисел в .txt и двух текстовых файлов |
|
|
CMD/BAT - Сравнение чисел в .txt и двух текстовых файлов
|
Новый участник Сообщения: 22 |
Профиль | Отправить PM | Цитировать
Есть текстовый файл 1.txt в котором записаны 2 числа (число 1 и число 2) в один ряд через пробел, берем за пример: 31 5
1) Если хоть одного из числа 1 и числа 2 нет в перечне: 2, 5, 7, 15, 17, 19, 23, 31, 35 то выполнить скрипт заново. 2) Если число 1 и число 2 есть в списке чисел то выполнить скрипт далее. 3) Переименовать 1.txt в 2.txt. 4) Новый созданный 1.txt сравнить с 2.txt - 1 число с 1 числом и 2 число с 2 числом, если хоть одно различие то выполнить скрипт далее. |
|
Отправлено: 17:14, 11-02-2019 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Это что за лабораторка дурная такая?!
|
Отправлено: 20:50, 11-02-2019 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать Та нет, это для другого...
|
Отправлено: 21:15, 11-02-2019 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Тогда опишите саму задачу, а не выбранное решение.
|
Отправлено: 21:17, 11-02-2019 | #4 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать papacoca, вот решение, на Ваш алгоритм:
@echo off set "file1=1.txt" set "file2=2.txt" set "var=2 5 7 15 17 19 23 31 35" :begin echo.Проверяем числа set /a f1=0,f2=0 if not exist "%file1%" (echo.Такого файла [%file1%], не существует&pause&exit /b) <1.txt (for /f "tokens=1,2" %%a in ('more') do ( |
|
------- Последний раз редактировалось YuS_2, 12-02-2019 в 20:28. Причина: неверный алгоритм проверки Отправлено: 21:33, 11-02-2019 | #5 |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
Одно уточнение! В 3) пункте: Пишет, Переименовываем [1.txt] в [2.txt] Файл [2.txt] уже существует. Не может переименовать [1.txt] в [2.txt] потому что он существует. Можно сделать, чтоб без лишних запросов, удалить 2.txt и переименовать 1.txt в 2.txt, автоматом нужно? Так как 2.txt будет постоянно создан его нужно удалить перед тем как переименовать 1.txt |
|
Последний раз редактировалось papacoca, 11-02-2019 в 22:58. Отправлено: 22:35, 11-02-2019 | #6 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата papacoca:
Цитата papacoca:
Подсказка: Редактировать надо вот этот условный блок: if not exist "%file2%" (ren "%file1%" "%file2%") else ( echo.Файл [%file2%] уже существует. Требуется принятие решения. Выходим. pause&exit /b ) Либо, вместо добавления команды удаления, можно просто заменить команду переименования на команду перемещения - move с ключом /y, а условный блок вообще убрать, оставить только одну команду move В помощь: |
||
------- Последний раз редактировалось YuS_2, 11-02-2019 в 23:13. Отправлено: 23:07, 11-02-2019 | #7 |
Новый участник Сообщения: 22
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
Можете немного пояснить, если файлы идентичны вместо этого прописать 1 сценарий? Если файлы отличаются то нужно прописывать после этого 2 сценарий? Цитата:
|
||
Отправлено: 23:27, 11-02-2019 | #8 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата papacoca:
Цитата YuS_2:
Т.е. примерно так: ... >nul fc "%file1%" "%file2%"&&(echo.Файлы идентичны&goto next2) echo.Файлы отличаются, поехали дальше... echo.Приехали! Станция "Конечная". pause&exit /b :next2 echo.здесь выполняем код, если файлы одинаковые. pause&exit /b Цитата papacoca:
Цитата YuS_2:
|
||||
------- Отправлено: 23:46, 11-02-2019 | #9 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Iska:
@echo off set "f1=1.txt" set "f2=2.txt" set "pr=2, 5, 7, 15, 17, 19, 23, 31, 35" if not exist "%f1%" (echo No "%f1%"& pause& exit) else (<"%f1%" set /p z1=) if exist "%f2%" <"%f2%" set /p z2= for %%a in (%z2%) do echo %%a|>nul findstr "%z1%" || set x2=%%a for %%a in (%z1%) do echo %%a|>nul findstr "%pr:,=%" || set x1=%%a if not defined x2 ( echo Отличий в файлах нет, удаляем "%f2%" и переименовываем "%f1%" в "%f2%"& echo del "%f2%"& echo ren "%f1%" "%f2%" ) else ( if not defined x1 ( echo Оба числа есть в перечне, удаляем "%f2%" и переименовываем "%f1%" в "%f2%"& echo del "%f2%"& echo ren "%f1%" "%f2%" ) else ( echo Одного или двух чисел нет в перечне, удаляем "%f2%" и переименовываем "%f1%" в "%f2%"& echo del "%f2%"& echo ren "%f1%" "%f2%" ) ) pause |
|
Отправлено: 12:26, 12-02-2019 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - При открытии текстовых файлов .txt блокнотом зависает компьютер (ос W10) | biomirror | Microsoft Windows 10 | 10 | 29-06-2016 13:26 | |
CMD/BAT - Сравнение содержимого 2х текстовых файлов, с выводом отчета | bionicmon | Скриптовые языки администрирования Windows | 3 | 23-11-2015 18:16 | |
Сравнение текстовых файлов | Speedy | Программное обеспечение Windows | 9 | 30-03-2015 02:42 | |
Разное - [решено] Не могу добавить элемент в контекстное меню для текстовых файлов (*.txt) в windows 7 | kefirko | Microsoft Windows 7 | 37 | 17-07-2014 09:28 | |
Офис и Текст - Автоматическое сравнение текстовых файлов | Kzer-Za | Программное обеспечение Windows | 4 | 04-10-2011 11:50 |
|