Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
(часть 1) (часть 2)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 5
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Урок bat-аники (для начинающих)
· Курс лекций для начинающих. Полезно и просто описано
· Набор GNU утилит для win32
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
· Справка по командам в виде Html
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
· Уильям Станек - Командная строка Microsoft Windows (вплоть до w2k3)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек)
· Переход из 32-битной версии cmd.exe в 64-битную

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:38 10-03-2009 | Исправлено: TechnicsKuzya, 13:54 27-12-2009
romrub

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fristfrist

Цитата:
но все таки хотелоть батником  

 
а в чем цель именно включения/выключения ?
может достаточно будет просто заново получить ip-адрес ? ipconfig <адаптер> /renew
 
ipconfig.exe конечно не bat-команда, но в составе любой windows есть всегда
 
также может будут интересны arp.exe и netsh.exe ?

Всего записей: 25 | Зарегистр. 18-03-2009 | Отправлено: 10:34 11-05-2009 | Исправлено: romrub, 10:56 11-05-2009
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть ещё один вопросик
есть текстовый файл в котором только одна строка
DB_Date.bak
как её заменить на  
DBIntermediate_Date.bak
т.е получается  поменять первые 2 символа на новые 14

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 10:39 11-05-2009 | Исправлено: slech, 10:41 11-05-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
slech
Заменить строку в файле?
Просто переписать этот файл, раз он с одной строкой

Код:
 
DBIntermediate_Date.bak 1>file.txt
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:16 11-05-2009
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
мне важно оставить концовку строки
DBIntermediate_Date.bak

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 13:05 11-05-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
slech

Цитата:
мне важно оставить концовку строки


Код:
 
@echo off
set /p name=<file.txt
echo %name:DB=DBIntermediate% 1>file.txt
 

 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:12 11-05-2009
timka85

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HaK1R
есть ошибка. Сообщается об отказе в доступе. Затем папка с флешки не перемещается, а запускается сразу Commander.exe . При закрытии Commander.exe ничего обратно во флешку не перемещается.
 

Цитата:
и как я понял два раза папку Folder_1 не надо делать  

нет, нужно именно такое расположение. Потому что в папке C:\Moved\Folder_1 находится Commander.exe и рядом такая же папка Folder_1, а в ней уже всякие там файлы.
 
Нужна доработка. Спрашивайте все что хотите.

Всего записей: 236 | Зарегистр. 19-07-2008 | Отправлено: 16:04 11-05-2009
Yoldosh



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребьята если не сложна подскажите как зделать так штобы батник распоковал архив .7z
надо штобы батник распаковал архив вту самую директорию где находитсья батник
Заранее спаибо за помощь !!!

Всего записей: 98 | Зарегистр. 21-01-2009 | Отправлено: 16:52 11-05-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
timka85

Цитата:
Сообщается об отказе в доступе.

 
Это происходит потому, что команда `move` не умеет перемещать папку между разными логическими дисками. Только файлы. Используй `xcopy` и `rd` (если надо удалить исходную папку)
 
Поясни, что значит выбранная по алфавиту папка
Если правильно понял, то тебе нужно:

Код:
 
@echo off
setlocal
 
pushd "%~dp0"
 
for /d %%i in (*) do call:set "%%i"
 
for /f "tokens=2,3 delims=_=" %%i in ('set folder_') do echo [%%i] %%j
echo ----
set /p choice="> "
 
for /f "tokens=2 delims==" %%i in ('set folder_%choice%') do (
    set "folder=%%i"
    xcopy /e /q "%%i" "C:\Moved\%%i\%%i\"
    rd /s /q "%%i"
)
 
start /wait "" "C:\Moved\%folder%\%folder%\commander.exe"
 
xcopy /e /q "C:\Moved\%folder%\%folder%" ".\%folder%\"
rd /s /q "C:\Moved\%folder%"
 
popd
goto:eof
 
:set
set /a cnt+=1
set "folder_%cnt%=%~1"
 

 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 16:52 11-05-2009 | Исправлено: 01MDM, 18:11 11-05-2009
Ortios



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто знает как узнать количество символов в переменной?
Например, есть файл, в нем три строки:

Цитата:
Odin
Dva
200995

Предположим, что каждая строка загоняется в переменную. Как узнать, что первый раз в переменной 4 символа, второй раз 3 символа и в третий раз 6 символов?

Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 19:23 11-05-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ortios
1.вариант

Код:
 
@echo off
setlocal enabledelayedexpansion
 
for /f "tokens=*" %%i in (1.txt) do set var=%%i && call:cnt
goto:eof
 
:cnt
set /a cnt+=1
if not "!var:~%cnt%!"=="" goto:cnt
set /a cnt-=1
echo %cnt%
 
set "cnt="
 

2.вариант

Код:
 
@echo off
for /f "tokens=*" %%i in (1.txt) do (
    set /p="%%i"<nul 1>1.tmp
    for %%i in (1.tmp) do echo %%~zi
)
del 1.tmp
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 20:45 11-05-2009
fristfrist



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
для полной ясности выложу мой батник

Цитата:
 
@echo off
netsh interface ip show config "MyLan" | find /i "Нет" >>null
 
rem проверяем включен или нет DHCP
if %errorlevel% == 1 (goto 1d) else (goto 2d)
 
:1d
rem DHCP включен,  меняем на статику
netsh interface ip set address name="MyLAN" static 198.162.3.9 255.255.255.0 198.162.3.1 1
netsh interface ip set dns name="MyLAN" static 198.162.0.1
netsh interface ip add dns name="MyLAN" 172.12.109.58 2
netsh interface ip add dns name="MyLAN" 172.12.109.76 3
reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0014" /v NetworkAddress /t REG_SZ /d 001С58570E65 /f
goto EOF
 
:2d
rem DHCP выключен, включаем заново
netsh interface ip set address name="MyLAN" dhcp
netsh interface ip set dns name="MyLAN" source=dhcp
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0014" /v NetworkAddress /f
goto EOF
 
:EOF
 

т.е. что бы изменения вступили в силу нужно всего на всего перезагрузить "MyLan"

Всего записей: 19 | Зарегистр. 12-10-2008 | Отправлено: 21:04 11-05-2009
timka85

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM

Цитата:
Поясни, что значит выбранная по алфавиту папка  

что то похожее я просил уже ранее, но там нужен был запуск ярлыков через батник с таким приоритетом алфавитного порядка (прим. #2_Link_Starter запускает второй линк идущий по списку). А сейчас, с тем же принципом определения, мне нужно перемещать определенную папку в нужное место и ее же оттуда в конце возвращать обратно. Еще раз хочу напомнить, что папки могут быть с совершенно разными именами без какого-либо постоянного значения.

Всего записей: 236 | Зарегистр. 19-07-2008 | Отправлено: 21:49 11-05-2009 | Исправлено: timka85, 22:03 11-05-2009
HaK1R



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
fristfrist
Я думаю что, чтобы изменения вступили в силу достаточно перезапустить подключение

Код:
 
::Отключение
rasdial MyLAN /disconnect
::Включение
rasdial "MyLAN" Login password
 

 
Подробнее в
Код:
rasdial /?


Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 22:02 11-05-2009
Ortios



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM,
Спасибо, классно! А то мыслей никаких не было. Может из-за праздников.

Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 23:03 11-05-2009
fristfrist



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HaK1R

Цитата:
Я думаю что, чтобы изменения вступили в силу достаточно перезапустить подключение

 
не работает, как я думаю потому, что у меня подключение локальной сети, а не модем

Всего записей: 19 | Зарегистр. 12-10-2008 | Отправлено: 23:06 11-05-2009
HaK1R



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
fristfrist
Я по WiFi сижу так что на счет локалки проверить не могу
посмотри здесь

Код:
netsh lan /?

 
Добавлено:
может быть это

Код:
netsh lan reconnect /?

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 00:02 12-05-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
timka85
Ну батник-то попробовал? Там выбираешь нужную тебе папку по индексу:

Код:
 
[1] folder 1
[2] folder 2
[3] еще папка
...
[n] последняя папка из списка
------
> здесь вводишь нужный номер папки  
 

а дальше с ней происходит то что и заказывал.

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 00:12 12-05-2009 | Исправлено: 01MDM, 00:12 12-05-2009
fristfrist



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HaK1R
сп, буду смотреть пока что пишет:

Цитата:
Служба автоматической настройки проводной сети (dot3svc) не выполняется.

 
Добавлено:
оно его просто на подленность проверяет

Всего записей: 19 | Зарегистр. 12-10-2008 | Отправлено: 01:28 12-05-2009
rosalin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята я в этом деле новичек помогите изменить код
 

Код:
@echo off  
 
for /f "tokens=2,3 delims=. " %%a in ('dir /a:-D /-c /4') do mkdir %%b\%%a 2>nul  
for /f "tokens=2,3,6 delims=. " %%a in ('dir /a:-D /-c /4') do move %%c.msg %%b\%%a 2>nul  
for /l %%a in (2000,1,2010) do call :months %%a  
goto :EOF  
 
:months  
for /l %%b in (1,1,9) do rar m -ep %1.0%%b.rar %1\0%%b\*.*  
for /l %%b in (10,1,12) do rar m -ep %1.%%b.rar %1\%%b\*.*

 
после его отработки остаються пустые каталоги  
с помощью какой команды можно подчистить ???
 
вроде как говорят можно сделать с помощью

Код:
for  in  dir rd

 
Помогите плиз!!

Всего записей: 2625 | Зарегистр. 15-04-2003 | Отправлено: 11:03 12-05-2009 | Исправлено: rosalin, 14:13 12-05-2009
yahan2



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу сделать проверку, что бы имя файла было не больше 8 символов, а расширение не больше 3 + в файле не должно быть кириллических символов
 
Нашел, что %~x3 %~n3 - дают имя файла и расширение отдельно
Но как в bat-нике определить длину полученной строки?
Я уже не говорю на проверку символов
 
 

Всего записей: 112 | Зарегистр. 20-10-2005 | Отправлено: 13:29 12-05-2009
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru