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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

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

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



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Inoz2000 работает  /accepteula, не знал про этот ключик спасибо

Всего записей: 424 | Зарегистр. 19-03-2009 | Отправлено: 01:07 17-12-2020
GCRaistlin



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

Цитата:
в зависимости от разных значений переменной 'Max'

А, пардон, это я пропустил. Не думаю, что можно сделать короче вашего варианта. Кстати, очень изящно получилось.

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

Всего записей: 3092 | Зарегистр. 18-04-2005 | Отправлено: 01:18 17-12-2020 | Исправлено: GCRaistlin, 01:19 17-12-2020
mat86



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Стоит такая задача. По пути текущего пользователя в папке
Цитата:
%APPDATA%\LibreOffice\4\user
 
хранятся настройки Libre office. Как можно эту папку с настройками скопировать всем пользователям? Я сделал sfx архив для распаковки этих настроек в %APPDATA%\LibreOffice\4\user, но это получается только для текущего пользователя. Я могу сделать копирование файла во все подпапки, но это будет только первого уровня. Помогите создать такой скрипт. Список папок можно брать из реестра

Цитата:
"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
, только там еще почему то не указана папка встроенного администратора

Всего записей: 424 | Зарегистр. 19-03-2009 | Отправлено: 04:45 17-12-2020
A27

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

Цитата:
но это получается только для текущего пользователя. Я могу сделать копирование файла во все подпапки, но это будет только первого уровня.

Прав доступа не хватает что ли?

Всего записей: 55 | Зарегистр. 30-03-2017 | Отправлено: 08:55 17-12-2020
mat86



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A27 дело не в правах пользователя, а в отсутствии механизма копирования файлов в необходимую подпапку, в смысле помогите сделать скрипт

Всего записей: 424 | Зарегистр. 19-03-2009 | Отправлено: 10:11 17-12-2020
Fenrizz



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mat86
Не очень понятно в чём проблема?  
Выгружаешь список всех пользовательских папок и копируешь:
 

Цитата:
@echo off
 
FOR /F "tokens=1,2,3" %%a IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /s /v ProfileImagePath ^| FIND "ProfileImagePath"') DO (
ECHO %%c  
xcopy "%APPDATA%\LibreOffice\4\user" "%%c" /E /H /C /I )  


Всего записей: 410 | Зарегистр. 12-09-2017 | Отправлено: 10:36 17-12-2020 | Исправлено: Fenrizz, 10:58 17-12-2020
Death_INN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Такой вопрос: имя батника не должно совпадать с именем команды, выполняемой в этом батнике?

Всего записей: 2251 | Зарегистр. 24-10-2002 | Отправлено: 02:21 18-12-2020
Egor2020

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Почему утилита winapiexec.exe для вызова функций WinAPI из BAT-файлов (скачана по ссылке внизу шапки данной темы) не запускается под Windows 98 SE и Windows 2000 SP4? При запуске под Windows 98 SE выскакивает ошибка, что файл winapiexec.exe требует более новую версию Windows. При запуске под Windows 2000 SP4 выскакивает ошибка "winapiexec.exe не является приложением Win32".

Всего записей: 854 | Зарегистр. 01-03-2020 | Отправлено: 06:42 18-12-2020
VDVolkov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем добра!
 
Я не писатель кодов, я занимаюсь AAE, 3DS MAX, VRay ....
Прошу помощи в написаниии (вернее просто: напишите мне, пожалуйста) такого bat.
Необходимо в каталоге d:\tmp (там куча вложенных папок с вложенными в них папками) найти и удалить файлы по маске:
*bel.dwg
*sp.dwg
*bel.dwt
*sp.dwt
*bel.proxy
*sp.proxy
 
А все что осталось перенести в папку d:\temp с заменой имеющихся в ней файлов.
 
Прошу сильно не бить, так как вникать в написание кодов для меня долго и бессмысленно. Файл нужен только этот, других не потребуется.
 
Я могу это все сделать в FAR, но нужен именно батник. Запустил и все.
 
Спасибо.
 
Вопрос снят
 
Разобрался сам. Все просто. Поиск помог.

Всего записей: 124 | Зарегистр. 17-08-2006 | Отправлено: 07:23 18-12-2020 | Исправлено: VDVolkov, 08:53 18-12-2020
lexapass



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VDVolkov
Попробуйте с этим:

Код:
 
@echo off
pushd d:\tmp
del /f /s /q *bel.dwg *sp.dwg *bel.dwt *sp.dwt *bel.proxy *sp.proxy
popd
for /r d:\tmp %%f in (*) do move /y "%%f" d:\temp
 

Всего записей: 550 | Зарегистр. 11-10-2004 | Отправлено: 08:58 18-12-2020
Fenrizz



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

Цитата:
Такой вопрос: имя батника не должно совпадать с именем команды, выполняемой в этом батнике?

Может и совпадать. Но, если ввести имя файла без расширения, то Windows сначала попытается выполнить .exe, если такого нет, то .bat

Всего записей: 410 | Зарегистр. 12-09-2017 | Отправлено: 09:28 18-12-2020
VDVolkov



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
lexapass
 
Спасибо. Красиво. Свой файл даже показывать не буду.
Но каталоги не переносятся, только файлы.
 
А очистить каталог Tmp > правильно я написал:
 
@echo off
pushd d:\tmp
del /f /s /q *bel.dwg *sp.dwg *bel.dwt *sp.dwt *bel.proxy *sp.proxy
popd
for /r d:\tmp %%f in (*) do move /y "%%f" d:\temp  
RD /S /Q d:\Tmp\
MD D:\Tmp
 
Я сделал так:
 
@echo off
pushd d:\tmp
del /f /s /q *bel.dwg *sp.dwg *bel.dwt *sp.dwt *bel.proxy *sp.proxy
XCOPY /E "D:\TMP" "D:\TEMP" /y
RD /S /Q D:\Tmp\
MD D:\Tmp
 
Так переносится все и очищается TMP
 
lexapass
 
Еще раз большое человеческое спасибо.

Всего записей: 124 | Зарегистр. 17-08-2006 | Отправлено: 10:01 18-12-2020 | Исправлено: VDVolkov, 10:31 18-12-2020
los

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Egor2020,
потому что:
minimum Windows version: 5.1
т.е. Windows XP

Всего записей: 4609 | Зарегистр. 08-09-2001 | Отправлено: 10:05 18-12-2020
lexapass



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VDVolkov
Окончательный вариант верный, в своем варианте упустил каталоги из вида.

Всего записей: 550 | Зарегистр. 11-10-2004 | Отправлено: 10:22 18-12-2020
Egor2020

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

Цитата:
потому что:
minimum Windows version: 5.1
т.е. Windows XP

Есть ли какой-либо способ под Windows 98 SE и Windows 2000 SP4 вызывать функции WinAPI из BAT-файлов без помощи стандартной утилиты rundll32.exe? Или все-таки придется с помощью шестнадцатеричного редактора подменять минимальную версию Windows в PE-заголовке файла winapiexec.exe?

Всего записей: 854 | Зарегистр. 01-03-2020 | Отправлено: 12:14 18-12-2020 | Исправлено: Egor2020, 12:15 18-12-2020
Death_INN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz, простой пример:
имя батника: reg.cmd

Код:
reg save HKLM\SAM C:\TEMP\SAM

Идет зацикливание (но не всегда). Раньше писал, но не мог понять в чем дело. Даже винду с нуля поставил для проверки. А когда поменял имя батника на другое, то проблема была решена. Спрашиваю, потому что хочу узнать причину зацикливания при совпадении имен.

Всего записей: 2251 | Зарегистр. 24-10-2002 | Отправлено: 12:17 18-12-2020 | Исправлено: Death_INN, 12:58 18-12-2020
KiloSub



Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Death_INN, Вы же сами ответили на свой вопрос. Зачем тогда спрашиваете? )) Избегайте совпадения имен.  

Всего записей: 386 | Зарегистр. 30-05-2020 | Отправлено: 12:36 18-12-2020
los

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

Цитата:
Есть ли какой-либо способ под Windows 98 SE и Windows 2000 SP4 вызывать функции WinAPI из BAT-файлов без помощи стандартной утилиты rundll32.exe?

наверное, есть типа такого WhoCalls

Цитата:
Или все-таки придется с помощью шестнадцатеричного редактора подменять минимальную версию Windows в PE-заголовке файла winapiexec.exe?

Может не работать или работать не так как ожидается. Проще задать вопрос автору
https://rammichael.com/winapiexec  

Всего записей: 4609 | Зарегистр. 08-09-2001 | Отправлено: 13:24 18-12-2020
Fenrizz



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

Цитата:
простой пример:  имя батника: reg.cmd  

Цитата:
reg save HKLM\SAM C:\TEMP\SAM  

 
В батнике замените reg на reg.exe иначе он сам себя пытается выполнить

Всего записей: 410 | Зарегистр. 12-09-2017 | Отправлено: 14:45 18-12-2020 | Исправлено: Fenrizz, 14:45 18-12-2020
mat86



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
Спасибо, чуть - чуть модернизировал, все работает, получилось так  

Цитата:
@echo off  
FOR /F "tokens=1,2,3" %%a IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /s /v ProfileImagePath ^| FIND "ProfileImagePath"') DO (
ECHO %%c  
xcopy "%APPDATA%\LibreOffice\4\user" "%%c"\AppData\Roaming\LibreOffice\4\user"" /E /H /C /I /y)  

Единственное, рядом с запускаемым скриптом появляется папка
Цитата:
%systemroot%
с вот таким содержимым
Цитата:
%systemroot%\system32\config\systemprofile\AppData\Roaming\LibreOffice\4\user\
можно подправить чтобы она не создавалась?

Всего записей: 424 | Зарегистр. 19-03-2009 | Отправлено: 09:37 19-12-2020
Открыть новую тему     Написать ответ в эту тему

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

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


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru