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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102

Открыть новую тему     Написать ответ в эту тему

Maz



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

Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Примечание: Большие куски кода заключайте в тэг [ more ].  

Смежные темы:
В помощь системному администратору > Автоматизация администрирования
Microsoft Windows > Сценарии Windows

Полезные ссылки:
· Из Windows XP Professional Product Documentation:
> Описание Cmd.exe > Command shell overview
> Using batch files > Using batch parameters > Using filters > Using command redirection operators
 
· Уроки bat-аники (для начинающих): первый и второй
· Курс из 19 лекций "Командная строка и сценарии Windows"
· Уильям Р. Станек - Командная строка Windows. Справочник администратора
 
· Выполнение BAT-скриптов без вызова окна консоли
· cmdow - изменение параметров и видимости дос-окна, Статья в КОМПЬЮТЕРРАONLINE
· Набор GNU утилит для win32
· HS_Packet.7z - Пакет утилит для организации интерфейса в bat-файлах
· blat - отправка почты из консоли
· Easy Batch Builder+Rus+Crack - Редактор BAT файлов.Через графический интерфейс программы вы сможете быстро конструировать пакетные файлы практически любой сложности. (В комплекте есть Лоадер созданный с помощью Sign Of Misery некоторые антивирусы обзывают его вирусом. Вам решать: ставить или не ставить) (ЗЕРКАЛО)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек) ещё и ещё
· Переход из 32-битной версии cmd.exe в 64-битную (1) (2)(3)
 
· Архив всевозможных версий cmd.exe (от Windows NT 3.51 до Windows 10) и command.com (DOS 5.0 и выше). Старые командные процессоры можно запускать на более новых ОС, хотя не всё может работать корректно. Подробная документация по командам cmd.exe и стандартным утилитам ОС для NT 3.51, NT 4.0, NT 5.0 (Windows 2000) и NT 5.2 (Windows Server 2003). Сборник представляет исторический интерес, а также незаменим для тех, у кого появилось желание сделать свои скрипты работоспобными не только на текущей версии ОС. Ссылки wdho.ru tinyupload.com dbree.org
 
· Сборник одним архивом: Сотни Win32 утилит командной строки, нетривиальные .cmd файлы, .bat miniperl скрипты (не требующие полноценной установки Perl), FAR Manager с плагинами и настройками, разное для DOS/DOSBox (откуда под Win32 интерес представляют три продвинутых "мультисистемных" .bat файла да ещё, может быть, оболочка Necromancer DOS Navigator с поддержкой LFN и доступом к буферу обмена Windows). Краткие описания всего - в файликах files.bbs

Всего записей: 38025 | Зарегистр. 26-02-2002 | Отправлено: 13:35 19-09-2020 | Исправлено: Maz, 07:16 24-04-2021
Propretor



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

Код:
 
CD /d "%~dp0"
CHCP 1251 > NUL
FOR /f "delims=" %%a in ('DIR /b *.pdf') do (
ECHO %%a > utf.tmp
CHCP 65001 > nul
CMD /c "for /f "delims=" %%u in ('type utf.tmp') do @ECHO f|REN "%%a" "%%u" > nul"
)
DEL /q /f utf.tmp
PAUSE
 

Какой смысл в команде  CD /d "%~dp0"
CMD /c
и
@ECHO f
???

Всего записей: 333 | Зарегистр. 12-03-2003 | Отправлено: 15:52 25-05-2022
ipmanyak



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Propretor код  не мой, а  Inoz2000, его и спрашивай.

----------
В сортире лучше быть юзером, чем админом...

Всего записей: 11226 | Зарегистр. 10-12-2003 | Отправлено: 20:06 26-05-2022
Propretor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Inoz2000
Какой смысл в команде
CD /d "%~dp0"
CMD /c
и
@ECHO f
???
 
ipmanyak
прости, ошибся.

Всего записей: 333 | Зарегистр. 12-03-2003 | Отправлено: 22:10 26-05-2022
sainfo



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Парни, кто то может помочь с setupcomplite.cmd ? Что то сам не разберусь, что там не так. Некоторые строки не работают или работат но не верно. Если что, то выложу весь код скрипта.

Всего записей: 35 | Зарегистр. 04-07-2008 | Отправлено: 09:04 27-05-2022
ipmanyak



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
setupcomplite.cmd?  не попутал с  setupcomplete.cmd ? В любом случае телепатов тут нет, чтобы знать содержимое твоего скрипта.

----------
В сортире лучше быть юзером, чем админом...

Всего записей: 11226 | Зарегистр. 10-12-2003 | Отправлено: 09:30 27-05-2022
sainfo



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ну не ужели не понятно что там банальная описка, ну конечно же setupcomplete.cmd. И по поводу телепатов - ну да тут я пожалуй не прав, вот код:
Подробнее...
Смысл скрипта: Активация и переактивация ОС - работает безупречно! Выполнение группы скриптов из папки Files.
Путь к setupcomplete.cmd: Windows\Setup\Scripts\ или вот такой вариант его размещения:
https://ibb.co/8j1cvhL

Всего записей: 35 | Зарегистр. 04-07-2008 | Отправлено: 10:12 27-05-2022 | Исправлено: sainfo, 23:04 27-05-2022
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sainfo
В таких случаях надо сразу выкладывать. Кто захочет - посмотрит.

----------
Magically yours
Raistlin

Всего записей: 3480 | Зарегистр. 18-04-2005 | Отправлено: 10:21 27-05-2022
ipmanyak



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sainfo  
>for %%f in (Files\*.cmd) do call %%f выполняется и работает без вопросов!  
а не должна, по той же причине, что и не работает и предыдущая строка.

Код:
 
cd /d "%~dp0"                    
for %%f in ("*.exe") do %%f            
for %%f in ("*.cmd") do call %%f        
for %%f in ("*.reg") do reg import %%f  
 

 в команде  FOR без ключа ты должен указать готовый набор файлов, а не путь к выборке.
 
 


----------
В сортире лучше быть юзером, чем админом...

Всего записей: 11226 | Зарегистр. 10-12-2003 | Отправлено: 11:07 27-05-2022 | Исправлено: ipmanyak, 11:09 27-05-2022
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ipmanyak
Маска файлов в сете FOR может содержать путь.

----------
Magically yours
Raistlin

Всего записей: 3480 | Зарегистр. 18-04-2005 | Отправлено: 11:34 27-05-2022
sainfo



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

Цитата:
в команде  FOR без ключа ты должен указать готовый набор файлов, а не путь к выборке.

Первый раз такое слышу. Там, в папке Files около десяти файлов .cmd и около пятнадцати файлов .reg, еще и файлы .exe.
Если их все перечислять в setupcomplete.cmd, то он становится больше похож на "простыню". Ну да так все отрабатывает. Но я потому и обратился за советом, что бы минимизировать объем setupcomplete.cmd, что  бы знающие посоветовали как решить эту задачу. Тем более что ведь эта строка работает вообще без вопросов: for %%f in ("*.cmd") do call %%f    

Всего записей: 35 | Зарегистр. 04-07-2008 | Отправлено: 12:11 27-05-2022
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sainfo
Вставьте echo перед %%f в команде FOR, которая не работает. Должно помочь в выяснении причины.

----------
Magically yours
Raistlin

Всего записей: 3480 | Зарегистр. 18-04-2005 | Отправлено: 12:13 27-05-2022
Propretor



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

Всего записей: 333 | Зарегистр. 12-03-2003 | Отправлено: 12:42 27-05-2022
sainfo



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
GCRaistlin,
Цитата:
Вставьте echo перед %%f в команде FOR, которая не работает. Должно помочь в выяснении причины.

Не совсем понял, вы  имеете ввиду предоставить запись в каком виде: echo перед for, после for или вместо for?
 
 
 

Всего записей: 35 | Зарегистр. 04-07-2008 | Отправлено: 12:45 27-05-2022 | Исправлено: sainfo, 12:52 27-05-2022
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sainfo
for %%f in ("*.exe") do echo %%f

----------
Magically yours
Raistlin

Всего записей: 3480 | Зарегистр. 18-04-2005 | Отправлено: 12:59 27-05-2022
sainfo



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
GCRaistlin,
То есть, как я понял, общий код этой части будет выглядеть так?
 
cd /d "%~dp0"                    
for %%f in ("*.exe") do echo %%f            
for %%f in ("*.cmd") do echo call %%f        
for %%f in ("*.reg") do echo reg import %%f  
 
 
 

Всего записей: 35 | Зарегистр. 04-07-2008 | Отправлено: 14:13 27-05-2022
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sainfo
Да. Ваша цель - увидеть, что получает для исполнения командный процессор.
 
Вообще, когда что-то не работает, нужно максимально упростить проблемный участок в коде, выкинув из него все ненужное и работающее.

----------
Magically yours
Raistlin

Всего записей: 3480 | Зарегистр. 18-04-2005 | Отправлено: 14:18 27-05-2022
sainfo



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
GCRaistlin,
Цитата:
Ваша цель - увидеть, что получает для исполнения командный процессор.

Нет, моя цель ее не увидеть, а что бы нормально отработали все мои твики при установке моей кастомной ОС.

Цитата:
Вообще, когда что-то не работает, нужно максимально упростить проблемный участок в коде, выкинув из него все ненужное и работающее.

Ну так что в нем выкидывать если он и так проще не бывает. И как оказалось в него еще и добавить  echo оказалось нужным.  
Большое спасибо за консультацию, вечером буду пробовать что из этого получилось.

Всего записей: 35 | Зарегистр. 04-07-2008 | Отправлено: 14:52 27-05-2022 | Исправлено: sainfo, 14:53 27-05-2022
Inoz2000



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

Цитата:
do @ECHO f|REN  
это не мой код.
Философствовать о смысле команд в командном файле я не намерен.

----------
Мы все умрём. (-:

Всего записей: 3753 | Зарегистр. 23-04-2009 | Отправлено: 17:10 27-05-2022
Propretor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Inoz2000
При чем здесь философствование, я просил объяснить, зачем эти команды и какой функционал они несут, поскольку сам не профи и не программист, даже если это не ваш код.

Всего записей: 333 | Зарегистр. 12-03-2003 | Отправлено: 18:16 27-05-2022
ipmanyak



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Propretor
cd /d "%~dp0"        - переход в каталог , в котором находится сам  батник
в помощь справка  
  for /? | more
смотреть самый конец.  В системной переменной 0  содержится  путь и имя самого батника, можешь проверить в батнике командой:
echo %0
 
%~dp0   - переменная  0  раскрывается в имя диска и путь, то есть имя батника отсекается
 
CMD /c "for /f "delims=" %%u in ('type utf.tmp') do @ECHO f|REN "%%a" "%%u" > nul"
ту мне непонятно
do @ECHO f|REN    - стоит знак конвейера, что означает  направить букву f для команды  REN в качестве аргумента или ответа на запрос  
Может сэр Inoz2000  всё-таки пояснит, что тут делается или должно делается?  И почему буква  f , а не какая-либо переменная ?
В том виде  батник не работает, в переменную %%u  ничего не выводится.


----------
В сортире лучше быть юзером, чем админом...

Всего записей: 11226 | Зарегистр. 10-12-2003 | Отправлено: 18:49 27-05-2022 | Исправлено: ipmanyak, 18:51 27-05-2022
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 102

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии - bat, cmd


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru