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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

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

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.10 до Windows 11 +Win95cmd +ReactOS) и command.com (DOS 5.0 и выше). Старые командные процессоры можно запускать на более новых ОС, хотя не всё может работать корректно. Подробная документация по командам cmd.exe и стандартным утилитам ОС для NT 3.51, NT 5.0 (Windows 2000) и NT 5.2 (Windows Server 2003). Сборник представляет исторический интерес, а также незаменим для тех, у кого появилось желание сделать свои скрипты работоспобными не только на своей версии ОС.
 
· Большой сборник одним архивом: Сотни Win32 утилит командной строки, нетривиальные .cmd файлы, .bat miniperl скрипты (не требующие полноценной установки Perl), FAR Manager с плагинами и настройками, разное для DOS/DOSBox (откуда под Win32 интерес представляют три продвинутых "мультисистемных" .bat файла да ещё, может быть, оболочка Necromancer DOS Navigator с поддержкой LFN и доступом к буферу обмена Windows). Краткие описания всего - в файликах files.bbs

Всего записей: 38794 | Зарегистр. 26-02-2002 | Отправлено: 13:35 19-09-2020 | Исправлено: metatrop, 07:55 29-11-2022
DeZz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ipmanyak
может выразился не совсем правильно
имеется ввиду скопировать папки с содержанием
 
сейчас в D:\backup\ копируются в кучу файлы из D:\1 и D:\2
а мне нужно чтобы было
 
D:\backup\1\*.*
D:\backup\2\*.*

Всего записей: 1154 | Зарегистр. 23-01-2006 | Отправлено: 16:51 12-12-2023 | Исправлено: DeZz, 10:43 13-12-2023
zloybuka

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ROBOCOPY /s /e "%%~a" "D:\backup\%%~nxa"

Всего записей: 349 | Зарегистр. 30-05-2008 | Отправлено: 17:08 12-12-2023
greeple

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
такой вопрос
есть файл с списком закачек (ссылка;путь;название)

Код:
https://lh3.googleusercontent.com/sjjtFHF4aAg9ayj__-AQGcpsUU-68uU23mI7_VhveT77i3XngBsrjrPV82APBWdLuZDmBEVapsA=w128-h128-e365-rj-sc0x00ffffff;"C:\Users\user\Desktop\id";icons50.jpg
https://static.centbrowser.com/win_stable/2.6.5.52/centbrowser_2.6.5.52_portable.exe;"C:\Users\user\Desktop\id";centbrowser_2.6.5.52_portable.exe
 

есть скрипт который вызывает Download master

Код:
chcp 65001
FOR /F "tokens=1,2,3 delims=;" %%a in (a.txt) do "D:\Portable\PortableApps\Download Master\dmaster.exe" %%a savepath=%%b filename=%%c
pause

но он запускает одну загрузку и ждёт ответа от DM, и только если выйти из DM скрипт запускает новую загрузку
как сделать так чтобы все загрузки сразу добавились и скачались?
 
в idm вот так добавил в список сразу все, один раз. А потом попробовал ещё раз, и теперь тоже так же ждёт

Код:
chcp 65001
FOR /F "tokens=1,2,3 delims=;" %%a in (a.txt) do "C:\Program Files (x86)\Internet Download Manager\IDMan.exe" /a /n /p %%b /f %%c /d %%a
pause

 
и поделитесь если есть вариант удобней скачивать по другому, но из такого списка (ссылка;путь;название)

Всего записей: 4075 | Зарегистр. 11-02-2020 | Отправлено: 18:20 12-12-2023
DeZz



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

Код:
for %%a in (
 "D:\1"
 "D:\2"
 "D:\имя файла.txt"
  ) do (
ROBOCOPY /s /e "%%~a" "D:\backup\%%~nxa"
  )

 
наберусь наглости усложнить задачу
 
а что если в список папок добавить файлы? это можно обыграть?

Всего записей: 1154 | Зарегистр. 23-01-2006 | Отправлено: 10:43 13-12-2023
zloybuka

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

Код:
if exist "%%~a\*" (
 ROBOCOPY /s /e "%%~a" "D:\backup\%%~nxa"
) else ROBOCOPY "%%~dpa" "D:\backup" "%%~nxa"
 


Всего записей: 349 | Зарегистр. 30-05-2008 | Отправлено: 11:17 13-12-2023
DeZz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zloybuka
https://i.imgur.com/rFreUc7.png
 
что то не то, либо кавычки либо пробелы...

Всего записей: 1154 | Зарегистр. 23-01-2006 | Отправлено: 12:33 13-12-2023
zloybuka

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

Код:
ROBOCOPY "%%~dpa\" "D:\backup" "%%~nxa"  

Всего записей: 349 | Зарегистр. 30-05-2008 | Отправлено: 12:55 13-12-2023
Arcadaw

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скажите пжлста, а как изменить размер окна программы?
Add-Type "using System; using System.Runtime.InteropServices; public class Window { [DllImport(""user32.dll"")] public extern static bool MoveWindow(IntPtr handle, int x, int y, int width, int height, bool redraw); }"
Get-Process notepad | ForEach-Object { [Window]::MoveWindow($_.MainWindowHandle, 100, 100, 1024, 768, $true) }
 
Вот делаю так, но это не работает для Firefox. Нужно сделать для того процесса firefox, который находится в определенной папке.  
Как это сделать?

Всего записей: 1506 | Зарегистр. 25-03-2004 | Отправлено: 18:23 17-12-2023
BorlandIMHO

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

Цитата:
firefox, который находится в определенной папке


Код:
Get-Process firefox | Where-Object {$_.Path -eq 'определённая папка'}

P.S. С вероятностью около 100%, таких процессов будет более, чем 1, если в целевом FF открыта хотя бы одна вкладка...

----------
http://www.imho.ws

Всего записей: 2394 | Зарегистр. 12-10-2006 | Отправлено: 21:38 17-12-2023 | Исправлено: BorlandIMHO, 21:42 17-12-2023
Arcadaw

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

Цитата:
 P.S. С вероятностью около 100%, таких процессов будет более, чем 1, если в целевом FF открыта хотя бы одна вкладка...

Спасибо. Мне главное отделить один Firefox из одной папки от другого в другой папке. И этот скрипт сработает для всех процессов из конкретной папки. Окно становится того размера которого надо.

Всего записей: 1506 | Зарегистр. 25-03-2004 | Отправлено: 08:07 18-12-2023 | Исправлено: Arcadaw, 16:22 18-12-2023
nnolex



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, CMD не воспринимает переменные среды, прочитанные из тестового файла. Как это побороть?
Задача: выполнить ряд операций с папками, пути к которым перечислены в txt файле. Начинаю:

Код:
@ECHO OFF
FOR /F "tokens=*" %%f IN (folders.txt) DO (
    ECHO %%f
)

 
В txt файле, условно:

Код:
%LocalAppData%\ABC
%LocalAppData%\BCD
и т.д.

 
В ответ получаю %LocalAppData%\ABC вместо C:\Users\User\AppData\ABC

Всего записей: 380 | Зарегистр. 14-04-2019 | Отправлено: 17:07 18-12-2023 | Исправлено: nnolex, 17:09 18-12-2023
GCRaistlin



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

Код:
 
call ECHO %%f
 


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

Всего записей: 3982 | Зарегистр. 18-04-2005 | Отправлено: 17:11 18-12-2023
nnolex



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
Спасибо, а как правильно подставить %%f в проверку существования папки IF EXIST

Всего записей: 380 | Зарегистр. 14-04-2019 | Отправлено: 17:22 18-12-2023
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nnolex
Присвоить развернутое значение переменной (call set ...), затем проверять существование папки с именем - значением этой переменной.

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

Всего записей: 3982 | Зарегистр. 18-04-2005 | Отправлено: 17:32 18-12-2023
sakatgg

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите вариант cmd файла для преобразования текстового файла list.txt с таким содержанием  
строк будет в районе нескольких десятков тысяч

Код:
\Windows\WinSxS\amd64_microsoft-windows-d..-repadmin.resources_31bf3856ad364e35_10.0.17763.1_en-us_0e937a3a21f57e8e
\Windows\WinSxS\amd64_microsoft-windows-d..-repadmin.resources_31bf3856ad364e35_10.0.17763.1_ru-ru_57b491ee72fa7a35
\Windows\WinSxS\amd64_microsoft-windows-d..-tools-mmc-adsiedit_31bf3856ad364e35_10.0.17763.1_none_a3ec538332003b58
\Windows\WinSxS\amd64_microsoft-windows-d..-tools-mmc-adsiedit_31bf3856ad364e35_10.0.17763.4377_none_00b9d56aaba10b40
\Windows\WinSxS\amd64_microsoft-windows-d..2provider.resources_31bf3856ad364e35_10.0.17763.1_ru-ru_39373ffd5f7710e6

 
Нужно сделать замену на тех строках где есть ru-ru  
 
amd64 на %ARCH%
1_ru-ru_**************** на *_%LANG%_*  
 
т.е. привести к виду  

Код:
\Windows\WinSxS\amd64_microsoft-windows-d..-repadmin.resources_31bf3856ad364e35_10.0.17763.1_en-us_0e937a3a21f57e8e
\Windows\WinSxS\%ARCH%_microsoft-windows-d..-repadmin.resources_31bf3856ad364e35_10.0.17763.*_%LANG%_*
\Windows\WinSxS\amd64_microsoft-windows-d..-tools-mmc-adsiedit_31bf3856ad364e35_10.0.17763.1_none_a3ec538332003b58
\Windows\WinSxS\amd64_microsoft-windows-d..-tools-mmc-adsiedit_31bf3856ad364e35_10.0.17763.4377_none_00b9d56aaba10b40
\Windows\WinSxS\%ARCH%_microsoft-windows-d..2provider.resources_31bf3856ad364e35_10.0.17763.*_%LANG%_*

Спасибо
 
P.S.
Если не сложно, еще сделать замену в строках с en-us и none
 
1_en-us_**************** на *
1_none_**************** на *
****_none_**************** на *
 
к виду

Код:
\Windows\WinSxS\amd64_microsoft-windows-d..-repadmin.resources_31bf3856ad364e35_10.0.17763.*
\Windows\WinSxS\%ARCH%_microsoft-windows-d..-repadmin.resources_31bf3856ad364e35_10.0.17763.*_%LANG%_*
\Windows\WinSxS\amd64_microsoft-windows-d..-tools-mmc-adsiedit_31bf3856ad364e35_10.0.17763.*
\Windows\WinSxS\amd64_microsoft-windows-d..-tools-mmc-adsiedit_31bf3856ad364e35_10.0.17763.*
\Windows\WinSxS\%ARCH%_microsoft-windows-d..2provider.resources_31bf3856ad364e35_10.0.17763.*_%LANG%_*

 
P.S.
Inoz2000
Забыл сказать, в програмированияи я чайник. Тут профи, поэтому и обращаюсь всегда сюда, для них это не сложно.
 
Мне бы хотя бы пример в завершенном виде, там уже под свой случай адаптирую  
 
P.S.2
Попробовал скрипт отсюда Замена текста в файле

Цитата:
@echo off
powershell -executionpolicy bypass -command "(get-content 'C:\Program Files (x86)\NSS\1.xml') | foreach {$_ -creplace 'ON','OFF'} | set-content 'C:\Program Files (x86)\NSS\1.xml'"
pause
exit  

Он не понимает спецсимволы
 
P.S.3, почитал
How can you find and replace text in a file using the Windows command-line environment?
Поиск и замена строки специальными символами с помощью пакетного файла
 
Там даже опытные имеют проблемы с заменой текста с спец символами.  
Пути решения есть, но мне не доступен их язык общения (язык программистов)

Всего записей: 1113 | Зарегистр. 18-11-2006 | Отправлено: 18:24 23-12-2023 | Исправлено: sakatgg, 17:26 24-12-2023
Inoz2000



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

Цитата:
Подскажите вариант cmd файла
Использовать в цикле команду SET и echo
не благодарите.

Всего записей: 4898 | Зарегистр. 23-04-2009 | Отправлено: 19:10 23-12-2023
pressF



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть у кого-то готовый вариант батника для копирования файлов из папки с подпапками в вышестоящую/текущую директорию?

Всего записей: 1104 | Зарегистр. 29-03-2023 | Отправлено: 07:55 25-12-2023
Fenrizz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pressF
Есть
 
XCOPY C:\source\new\ C:\source\ /E /H /Y

Всего записей: 677 | Зарегистр. 12-09-2017 | Отправлено: 08:19 25-12-2023
pressF



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
не сработало
XCOPY ..\ for %dp in /E /H /Y

Всего записей: 1104 | Зарегистр. 29-03-2023 | Отправлено: 19:06 25-12-2023
BorlandIMHO

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

Цитата:
не сработало
XCOPY ..\ for %dp in /E /H /Y

А какое действие ожидалось от ЭТОГО?..
"копировать каталог верхнего уровня в каталог {или всё же файл, тут непонятно} с именем for в текущей папке" и на этом разбор аргументов xcopy по-любому заканчивается ошибкой. Почитайте справку xcopy, у которой аргументы [источник] и [назначение], всего 2, и ключи. Вы же пытаетесь скормить ей сразу 4 аргумента (из которых 3-й тупо недопустимый, даже если бы команда понимала 3 и более аргументов)...

----------
http://www.imho.ws

Всего записей: 2394 | Зарегистр. 12-10-2006 | Отправлено: 22:25 25-12-2023 | Исправлено: BorlandIMHO, 22:26 25-12-2023
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru