Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Операционные системы общие вопросы
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.09.2009, 09:17   #61
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

mutabor
наберите
Код:
HELP FOR
навскидку, обработка всех *.arj файлов (пример выдран из ARJ2RAR.bat):
Код:
...
if exist *.arj goto MaskYeah
echo %1 -- files cannot be found.

echo %1 -- files cannot be found. >>!arj2rar.!!!
goto Exit
:MaskYeah
if exist *. ren *.$e$
ren *.arj *.
for %%f in (*.) do call arj2rar %%f
if exist *.$e$ ren *.$e$ *.
goto Quit
...
ну пример старый, похоже, в команде for раньше не было модификаторов:
Цитата:
%~nI - из переменной %I выделяется только имя файла
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.09.2009, 22:17   #62
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Спасибо за подсказку, нужный скрипт написал. Теперь хотелось бы его немного полирнуть чтобы каждую итерацию команды не выводились на экран, а вместо этого в консоли была такая надпись - Обработка файла 35 из 200, т.е. отображать прогресс. Как такое прикрутить к моему скрипту?
Код:
for %%f in (*.ex1) do myprogram %%f /param %%~nf.ex2
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 15.09.2009, 22:26   #63
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,216
По умолчанию

Завести переменную, её инкремировать в цикле и выводить значение на экран.
Arigato вне форума Ответить с цитированием
Старый 16.09.2009, 01:46   #64
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Завести переменную, её инкремировать в цикле и выводить значение на экран.
Ну это понятно. Хотелось бы на реализацию посмотреть. Ладно, не буду навязываться, фиг с ним, и так сойдет.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 16.09.2009, 10:38   #65
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,216
По умолчанию

Примерно так:
Код:
@echo off
setlocal enabledelayedexpansion

rem Считаем общее количество файлов:
set count=0
for %%f in (*.ex1) do set /a count=!count!+1

rem Начинаем обработку файлов:
set cnt=1
for %%f in (*.ex1) do (
	cls
	echo Obrabotka faila !cnt! is %count%
	myprogram %%f /param %%~nf.ex2
	set /a cnt=!cnt!+1
)

endlocal
Arigato вне форума Ответить с цитированием
Старый 23.09.2009, 11:32   #66
sneksnek2006
Пользователь
 
Регистрация: 23.09.2009
Сообщений: 13
По умолчанию Не работает netsh

Здравствуйте! Такая проблема. У меня ноут. Дома и на работе сети. Требуется батником их перенастраивать. Я написал следующее:
Цитата:
@echo off
color 0f
title Настройка сети
cls


:lan_edit
@Color 0f
cls
echo --------------------------
echo -- Выбирите сеть --
echo --------------------------
echo - 1 - BIA -
echo - 2 - LANS.by -
echo - 3 - Показать маршруты -
echo - 4 - Выход -
echo --------------------------
set menuprompt=x
set /p menuprompt=Ваш выбор:
if /i %menuprompt%==1 goto lan_edit_1
if /i %menuprompt%==2 goto lan_edit_2
if /i %menuprompt%==3 goto route_print
if /i %menuprompt%==4 goto exit
cls
color 0c
echo -------------------------
echo -- Неправильный выбор! --
echo -------------------------
set temp=x
set /p temp=Нажмите Enter...
if /i %temp%==. echo ok
goto lan_edit


:route_print
@Color 0e
cls
echo Маршруты:
route.exe print
set temp=x
set /p temp=Нажмите Enter...
if /i %temp%==. echo ok
goto :lan_edit


:lan_edit_1
@Color 0f
cls
netsh interface ip set address name=lan source=static addr=10.15.1.163 mask=255.255.255.0 gateway=10.15.1.100 gwmetric=1
netsh interface ip set dns name=lan source=static addr=81.25.32.34
netsh interface ip add dns name=lan addr=81.25.32.9 index=2
set temp=x
set /p temp=Нажмите Enter...
if /i %temp%==. echo ok
goto :lan_edit


:lan_edit_2
@Color 0f
cls
netsh interface ip set address name=lan source=static addr=192.168.2.163 mask=255.255.255.0 gateway=192.168.2.251 gwmetric=1
netsh interface ip set dns name=lan source=static addr=93.125.40.2
netsh interface ip add dns name=lan addr=93.125.41.2 index=2
set temp=x
set /p temp=Нажмите Enter...
if /i %temp%==. echo ok
goto :lan_edit


:exit
@color 01
cls
exit
Но когда доходит до netsh, выполнение останавливается. Но в тоже время если создать отдельно два батника без менюшки, то все работает.
Почему??
sneksnek2006 вне форума Ответить с цитированием
Старый 23.09.2009, 11:57   #67
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,216
По умолчанию

Непонятная конструкция:
Код:
set temp=x
set /p temp=Нажмите Enter...
if /i %temp%==. echo ok
Не проще использовать pause?

Что до самого вопроса, то похоже на мистику. Видимо, где-то что-то не то делаете, что именно, сказать сложно, т.к. из примера не видно.
Arigato вне форума Ответить с цитированием
Старый 06.10.2009, 11:19   #68
Spider1
Новичок
Джуниор
 
Регистрация: 06.04.2007
Сообщений: 2
По умолчанию

Доброго времени суток!
подскажите пжлста, как можно при помощи bat файла, просмотреть файл на наличие определенной строки и если этой строки нет тогда добавить ее, иначе закрыть файл?
Spider1 вне форума Ответить с цитированием
Старый 06.10.2009, 11:49   #69
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,216
По умолчанию

Spider1
Решение вашей задачи:
Код:
@ echo off
set file=test.txt
set str=Hello, World
for /f "tokens=*" %%i in (%file%) do if "%%i"=="%str%" exit /b
echo %str%>>%file%
Arigato вне форума Ответить с цитированием
Старый 06.10.2009, 14:11   #70
Spider1
Новичок
Джуниор
 
Регистрация: 06.04.2007
Сообщений: 2
По умолчанию

ага то что нужно, спасибо больчое!
оказывается все так просто оказалось, в 4 строчках.
Spider1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для сохранения листов в отдельных файлах Neo007 Microsoft Office Excel 2 22.10.2008 18:16
Русская раскладка в bat-файлах snake-as Microsoft Office Excel 3 16.10.2008 17:59
Сортировка в файлах и записях. Паскаль Elizabeth Black Помощь студентам 2 27.05.2008 21:51
Помогите с вопросами о файлах Дима82 Помощь студентам 5 26.05.2008 19:49
Помогите, пожалуйста, решить задачу по файлах sheva_ser Паскаль, Turbo Pascal, PascalABC.NET 1 27.03.2008 19:36