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

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

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



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста, такой момент.
Нужно скопировать архив из одной папки в другую через bat файл. Но, если скопированный архив был изменен - не заменять его при повторном запуске bat файла.
 
Подробнее:
 
Копирую архив через батник командой:
copy "C:\Users\admin\Desktop\archive_test.rar" "C:\tmp\"
 
В "C:\tmp\" я добавил несколько файлов в "archive_test.rar". Если я запущу батник, то он заменит измененный архив на тот, который лежит в "C:\Users\admin\Desktop\"
 
Как сделать так, чтобы он не заменял архив, если он уже существует. Возможно нужно сделать какую-то проверку на его наличие. Желательно, чтобы без подтверждения в командной строке.
 
Буду рад любой информации.

Всего записей: 362 | Зарегистр. 08-01-2012 | Отправлено: 08:39 07-09-2022 | Исправлено: cjk441, 08:40 07-09-2022
Inoz2000



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

Код:
copy /?

Всего записей: 3761 | Зарегистр. 23-04-2009 | Отправлено: 08:43 07-09-2022
cjk441



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

Цитата:
copy /?

Нашел только это, но оно не подходит, так как нужно без подтверждения в командной строке.
 
/-Y     Обязательный запрос подтверждения на перезапись существующего конечного файла.

Всего записей: 362 | Зарегистр. 08-01-2012 | Отправлено: 11:15 07-09-2022 | Исправлено: cjk441, 11:16 07-09-2022
GCRaistlin



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

Цитата:
скопированный архив

Источник или копия?

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

Всего записей: 3483 | Зарегистр. 18-04-2005 | Отправлено: 11:36 07-09-2022
BorlandIMHO

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

Цитата:
Как сделать так, чтобы он не заменял архив, если он уже существует.


Код:
if NOT EXIST "C:\tmp\archive_test.rar" copy "C:\Users\admin\Desktop\archive_test.rar" "C:\tmp\"

Копирование будет осуществляться только в случае, если файла в целевой директории нет.


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

Всего записей: 1607 | Зарегистр. 12-10-2006 | Отправлено: 11:37 07-09-2022
GCRaistlin



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

Цитата:
Если скопированный архив был изменен - не заменять его при повторном запуске bat файла


Цитата:
Как сделать так, чтобы он не заменял архив, если он уже существует.

Это не одно и то же.

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

Всего записей: 3483 | Зарегистр. 18-04-2005 | Отправлено: 11:40 07-09-2022 | Исправлено: GCRaistlin, 11:40 07-09-2022
cjk441



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

Цитата:
Копирование будет осуществляться только в случае, если файла в целевой директории нет.
 

Код:
if NOT EXIST "C:\tmp\archive_test.rar" copy "C:\Users\admin\Desktop\archive_test.rar" "C:\tmp\"

 
Благодарю, именно это и требовалось.

Всего записей: 362 | Зарегистр. 08-01-2012 | Отправлено: 12:28 07-09-2022 | Исправлено: cjk441, 12:28 07-09-2022
Fenrizz



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Или так:
 
echo n|copy /-y "C:\Users\admin\Desktop\archive_test.rar" "C:\tmp\"

Всего записей: 565 | Зарегистр. 12-09-2017 | Отправлено: 14:30 07-09-2022
MH100181Q



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SigRemover
Приложение для удаления цифровой подписи двоичных файлов
https://dennisbabkin.com/sigremover/
Скачать
Скачать исходник
 
Батник от Alex_Piggy переделал под программу:

Код:
@echo off
title SigRemover
cd /d "%~dp0"
:_1
if x%1==x goto :_2
SigRemover.exe -i "%~1"
shift
goto :_1
:_2
goto :eof

Всё отлично работает, при перекидывании на батник кучки файлов, НО.  
Нужна перезапись существующего файла/файлов, а не создание рядом с префиксом (NoSig)
А в настройках самой консольки это видимо не предусмотрено, можно только с помощью параметра
-o изменять названия итоговых файлов.

Код:
Usage:
 
SigRemover -i <File> [-o <File>]
 
where:
 -i  = specifies PE file to remove signature from:
        <File> = File path to read PE binary.
 -o  = [optional] specifies destination PE file:
        If omitted, the new file name will have (NoSig) suffix in the same folder.
        <File> = File path to create new PE binary.
 
Examples:
 SigRemover -i "path-to\file.exe"
 SigRemover -i "path-to\file.exe" -o "path-to\result.exe"

 
Подобная программа, на NET Framework
FileUnsigner
https://t.me/PortablebyMH100181Q/199
 — утилита для удаления цифровой подписи из любого файла.
Собрано: Enigma Virtual Box
ОС: XPSP2-11
Размер: 4,32 МБ
Встроенный NET Framework 2.0

Всего записей: 1139 | Зарегистр. 29-04-2008 | Отправлено: 17:30 07-09-2022 | Исправлено: MH100181Q, 17:43 07-09-2022
Fenrizz



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MH100181Q
В чём вопрос?  
 

Код:
SigRemover.exe -i "%~1" -o "%~1"  

 
Или так

Код:
SigRemover.exe -i "%~1"
move /Y "%~dp1%~n1_NoSig%~x1" "%~1"

Всего записей: 565 | Зарегистр. 12-09-2017 | Отправлено: 18:37 07-09-2022 | Исправлено: Fenrizz, 18:39 07-09-2022
MH100181Q



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
Не работает так. С разными вариациями.
Либо создаёт файл (NoSig), либо ничего не меняет.
 

Код:
"%~dp0SigRemover.exe" "-i" "%~1" "-o" "%~1"


Код:
"%~dp0SigRemover.exe" -i "%~1" -o "%~1"

Failed to create destination file: C:\msvcp80.dll
Видимо ругается, что не может создать фай, ибо он уже существует. Видимо в коде консольки не предусмотрена перезапись существующего файла, по-этому надо бы это силой БАТника сваять

Всего записей: 1139 | Зарегистр. 29-04-2008 | Отправлено: 21:19 07-09-2022 | Исправлено: MH100181Q, 21:26 07-09-2022
Fenrizz



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

Код:
SigRemover.exe -i "%~1"
move /Y "%~dp1%~n1_NoSig%~x1" "%~1"  


Всего записей: 565 | Зарегистр. 12-09-2017 | Отправлено: 06:58 08-09-2022
MH100181Q



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

Код:
@echo off
title SigRemover
cd /d "%~dp0"
:_1
if x%1==x goto :_2
SigRemover.exe -i "%~1"
move /Y "%~dp1%~n1_NoSig%~x1" "%~1"
shift
goto :_1
:_2
goto :eof

а если так, то создаёт  (NoSig)

Всего записей: 1139 | Зарегистр. 29-04-2008 | Отправлено: 07:32 08-09-2022 | Исправлено: MH100181Q, 07:34 08-09-2022
Fenrizz



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

Цитата:
Не работает к сожалению

Не очень информативно
 
Как называются выходные файлы? Если входной, например, abcde.exe
 
Хотя это не особо важно, можно и так

Код:
SigRemover.exe -i "%~1" -o "%~dp1%~n1_NoSig%~x1"
move /Y "%~dp1%~n1_NoSig%~x1" "%~1"  

SimRemover создаст файл имя_исходного_ файла_NoSig.расширение
Следующая команда переименует его в файл имя_исходного_ файла.расширение
 

Цитата:
Благодарю за помощь!
Присовокупил ваш участок кода к коду от Alex_Piggy и всё заработало!
Ест любое кол-во файлов за раз  


Всего записей: 565 | Зарегистр. 12-09-2017 | Отправлено: 07:38 08-09-2022 | Исправлено: Fenrizz, 09:26 08-09-2022
MH100181Q



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

Цитата:
Как называются выходные файлы?

Любые файлы имеющие цифровую подпись. *.*

Цитата:
Не очень информативно

Пишет "SigRemover.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
 

Код:
"%~dp0SigRemover.exe" -i "%~1" -o "%~dp1%~n1_NoSig%~x1"
move /Y "%~dp1%~n1_NoSig%~x1" "%~1"
 
Вот так заработала, в кавычках. Только ест по одному файлу, уже прогресс
 
Добавлено:
Fenrizz
Благодарю за помощь!
Присовокупил ваш участок кода к коду от Alex_Piggy и всё заработало!
Ест любое кол-во файлов за раз
 

Код:
@echo off
title SigRemover
cd /d "%~dp0"
:_1
if x%1==x goto :_2
SigRemover.exe -i "%~1" -o "%~dp1%~n1_NoSig%~x1"
move /Y "%~dp1%~n1_NoSig%~x1" "%~1"
shift
goto :_1
:_2
goto :eof

 
Автор Pasha_ZZZ
предложил свой вариант, доп батники ей не нужны
Authenticode certificates remover 1.1
Консольная программа для удаления цифровых сертификатов из файлов

Всего записей: 1139 | Зарегистр. 29-04-2008 | Отправлено: 07:49 08-09-2022 | Исправлено: MH100181Q, 22:32 09-09-2022
O033

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, можно ли реализовать, что бы после выполнения  sfc /scannow при обнаружении поврежденных файлов запускалось повторное выполнение sfc /scannow.

Всего записей: 1 | Зарегистр. 08-09-2022 | Отправлено: 13:15 08-09-2022
Fenrizz



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

Код:
sfc /scannow || sfc /scannow  

Всего записей: 565 | Зарегистр. 12-09-2017 | Отправлено: 14:36 08-09-2022
BorlandIMHO

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
Сдаётся мне - не взлетит...


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

Всего записей: 1607 | Зарегистр. 12-10-2006 | Отправлено: 14:52 08-09-2022
GCRaistlin



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

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

Всего записей: 3483 | Зарегистр. 18-04-2005 | Отправлено: 14:55 08-09-2022
BorlandIMHO

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
В постановке задачи

Цитата:
при обнаружении поврежденных файлов запускалось повторное выполнение

И, если оно не исправило обнаруженное - какой смысл в повторном запуске того же и с теми же параметрами вообще?.. И второй раз не исправит...

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

Всего записей: 1607 | Зарегистр. 12-10-2006 | Отправлено: 15:02 08-09-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