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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в текстовом редакторе FarManager-а есть замечательные вертикальные блоки, которые помогут ..

Всего записей: 25 | Зарегистр. 18-03-2009 | Отправлено: 13:18 26-04-2009
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XXXXL
Так, наверное, если у тебя там в строке только пароль и номер.
 
cmd /c for /f "delims=; tokens=1-2" %a in (infile) do (@echo %b;%a >> outfile)
 
Хотя я в этом деле дилетант.

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 13:21 26-04-2009
XXXXL



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

Цитата:
в текстовом редакторе FarManager-а есть замечательные вертикальные блоки

Крутил я этот редактор долго и так не разобрался как им пользоваться
 
 

Цитата:
cmd /c for /f "delims=; tokens=1-2" %a in (infile) do (@echo %b;%a >> outfile)

Выдаёт:
непредвиденное появление: b.

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 14:36 26-04-2009
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XXXXL
А файл-то хоть как выглядит? Ты бы образец выложил (настоящий не обязательно)

Цитата:
Выдаёт:  
непредвиденное появление: b.

Я себе в качестве теста сделал файл вида
Код:
1;2
3;4
5;6
7;8
 
Вроде работает - в выходном файле получается
Код:
2;1  
4;3  
6;5  
8;7
 
 
Добавлено:
Ты, наверное, в батник засовываешь команду. Я-то написал для запуска из комстроки...

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 14:50 26-04-2009
XXXXL



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

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

Да, точьно... извини за невнимательность.
Большое спасибо всё работает.

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 15:48 26-04-2009
Upek

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

Всего записей: 22 | Зарегистр. 08-07-2006 | Отправлено: 17:08 26-04-2009
romrub

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
на будущее по Far-у ..
встаешь в левый верхний угол нужного вертикального блока
нажимаешь Alt,  
удерживая ег, стрелками вправо-вниз идешь в правый нижний угол
отпускаешь Alt
Shift-Del
встаешь в новую позицию, где будет располагаться левый верхний угол
Shift-Ins
 
уф, объяснять дольше
 
попробуй с Alt, сам быстрее разберешься
 
P.S.
сложность решения должно быть адекватна сложности задаче ...

Всего записей: 25 | Зарегистр. 18-03-2009 | Отправлено: 20:12 26-04-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый вечер.
 
Elroir
Спс. за переменные.
 
Есть вопрос по реестру. Как скопировать из реестра только один строковый параметр в файл *.reg.  
Вот код:
 
REG EXPORT HKEY_LOCAL_MACHINE\RASDEL 1.reg
 
Ещё код:
 
regedit /ea 1.reg HKEY_LOCAL_MACHINE\RASDEL
 
Эти два кода сохраняют весь раздел вместе с параметрами, а мне нужно только один параметр.
 
Спс.

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 20:43 26-04-2009
Maza_Faka



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

Цитата:
Как скопировать из реестра только один строковый параметр

Пример:

Код:
 
@Echo Off
 
Set KEY=HKEY_LOCAL_MACHINE\Software\MyProgram
Set VALUE=MyValue
 
Reg Export %KEY% C:\1.reg
Echo REGEDIT4>myreg.reg
Echo.>>myreg.reg
Echo [%KEY%]>>myreg.reg
More +1 1.reg | Find /I "%VALUE%">>myreg.reg
Echo.>>myreg.reg
 


Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 09:47 27-04-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza_Faka
 
Действительно копирует только один параметр, а не весь раздел.
Спс. за инфу

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 20:42 27-04-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток.
 
Можно ли сделать поиск файла в корне диска, по имеющимся дискам в системе?
 
Пример кода:
 
IF EXIST "C:\1.txt" GOTO COPY
IF NOT EXIST "C:\1.txt" GOTO NEXT
EXIT
 
Если есть, то GOTO COPY
Если нет файла, то переход к следующему диску.
В приведённом примере приходится подставлять букву диска, это же  
получается длинный список дисков, 26 букв!
 
Как сделать попроще?
 
Спс.

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 18:43 28-04-2009
maxi812

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
как сделать батник для флешки автозапуска что бы устанавливал постоянную букву диска (флешки) ?

Всего записей: 15 | Зарегистр. 25-02-2009 | Отправлено: 19:01 28-04-2009
romrub

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

Цитата:
Можно ли сделать поиск файла в корне диска, по имеющимся дискам в системе?
 
Пример кода:
 
IF EXIST "C:\1.txt" GOTO COPY
IF NOT EXIST "C:\1.txt" GOTO NEXT
EXIT
 
Если есть, то GOTO COPY
Если нет файла, то переход к следующему диску.  

 
как вот так:
 
FOR %%I IN (C D E F G H) DO (IF EXIST "%%I:\1.TXT" GOTO COPY)
 
список нужных дисков указываешь через пробел

Всего записей: 25 | Зарегистр. 18-03-2009 | Отправлено: 21:37 28-04-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
romrub
 
Как подставить переменную к (msg *) ,чтоб было видно на каком диске-то  
был найден файл?
 
Код:
 
FOR %%I IN (C D E F G H K) DO (IF EXIST "%%I:\1.txt" GOTO START)
FOR %%I IN (C D E F G H K) DO (IF NOT EXIST "%%I:\1.txt" GOTO NO)
:START
Chcp 1251
msg * Есть файл на диске  
EXIT
:NO
Chcp 1251
msg * Нет файла.
EXIT
 
Или может я чего то не допонимаю?
Помогите.
 
Спс.

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 19:59 29-04-2009 | Исправлено: Cosmogor, 20:00 29-04-2009
01MDM



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

Код:
 
@echo off
chcp 1251 1>nul
 
for %%i in (a,b,c,.......,z) do (
 
   if exist "%%i:\1.txt" (
         msg * Есть файл на диске %%i:
   ) else (
         msg * Нет файла на диске %%i:
   )  
)  
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 21:42 29-04-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
 
Спс. скрипт работает нормально.
 
Есть ещё вопрос, а нельзя сделать так что-бы скрипт вышел на  
GOTO, после нахождения файла(без перечислений дисков)
для дальнейших операции с файлом?

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 22:50 29-04-2009
timka85

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет форумчане!
Задача такая:
Есть папка с постоянно циркулируемыми файлами... Нужна в этой папке серия батников (для начала 3), и у каждого из них должна быть функция запуска файла из этой папки по алфавитному приоритету имени. Может я не совсем правильно выразился, но другими словами, не важно какие имена будут у файлов, батник, скажем Приоритет#2.bat, должен запустить мне файл, который идет по имени вторым в списке.

Всего записей: 236 | Зарегистр. 19-07-2008 | Отправлено: 23:07 29-04-2009 | Исправлено: timka85, 00:05 30-04-2009
romrub

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

Цитата:
Как подставить переменную к (msg *) ,чтоб было видно на каком диске-то  
был найден файл?
 


Цитата:
Есть ещё вопрос, а нельзя сделать так что-бы скрипт вышел на  
GOTO, после нахождения файла(без перечислений дисков)
для дальнейших операции с файлом?

 
не стесняйтесь , публикуйте условия задачи сразу - решение будет быстрее
 
замените

Код:
FOR %%I IN (C D E F G H K) DO (IF EXIST "%%I:\1.txt" GOTO START)

на

Код:
FOR %%I IN (C D E F G H K) DO (IF EXIST "%%I:\1.txt" CALL :START %%I)
 
:START
msg * Есть файл на диске %1
дальнейшие операции
GOTO :EOF

 
не рекомендую заменять GOTO :EOF на EXIT  

Всего записей: 25 | Зарегистр. 18-03-2009 | Отправлено: 02:40 30-04-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
romrub
 
Вот собрал наконец батник с помощью форума.  
Суть самого батника такая:
 
1) Поиск файла по имеющимся дискам(в корне диска),
2) Первый найденный файл копируется (дальше поиск прерывается),
3) И если файл не найден ни на одном диске, то EXIT.
 
Код:
 
FOR %%I IN (C D E F G H K) DO (IF EXIST "%%I:\1.txt" call:YES %%I)
FOR %%I IN (C D E F G H K) DO (IF NOT EXIST "%%I:\1.txt" call:NO %%I)
 
:YES
REM msg *  YES %1
 
GOTO COPY
EXIT
 
:NO
msg * NO.
EXIT
 
:COPY
echo Y|COPY "%1:\1.txt" "1.txt"
msg * YES COPY %1
EXIT
 
Батник хорошо работает, но что-то мне в нём не нравится.
А что ни как не пойму.
 
Вот на обсуждение форуму.
 
Спс.
 

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 09:53 30-04-2009
Maza_Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Cosmogor
Пример:

Код:
 
@Echo Off
 
FOR %%I IN (C D E F G H K) DO IF EXIST "%%I:\1.txt" (COPY /Y "%%I:\1.txt" "D:\1.txt") && (GoTo :EOF)
 

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 10:12 30-04-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