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

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

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

Maz (20-06-2024 22:42): Командная строка, батники, сценарии - bat, cmd (7 часть)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 189 190 191 192 193 194 195 196 197 198 199 200 201

   

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

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



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Оно работало в старых десятках. Теперь - кажысь, нет.

Всего записей: 5237 | Зарегистр. 23-04-2009 | Отправлено: 15:38 17-10-2023
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DeZz
Цитата:
 может кто подскажет решение без сторонних утилит?
 к примеру, открыть .jpg с помощью i_view64.exe
Моё решение чуть иное, но принцип можно и тут натянуть
http://forum.ru-board.com/topic.cgi?forum=2&topic=5915#7
Суть - регистрируем софтину в системе, а уже потом её можно выбрать через GUI настройки ассоциаций. Пользовался именно этой вещицей на W7 и W10 достаточно долго, до того как выложить это сюда. На W11 впоследствии тоже работало.
 
Добавлено:
Аналогичное этому решение также использует Henrypp в своём хромо-лаунчере для аналогичной цели.

Всего записей: 17956 | Зарегистр. 04-11-2010 | Отправлено: 07:28 18-10-2023
vaskamy



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

Цитата:
Моё решение чуть иное, но принцип можно и тут натянуть
http://forum.ru-board.com/topic.cgi?forum=2&topic=5915#7

Для других браузеров подойдёт? (Opera)

Всего записей: 1056 | Зарегистр. 04-03-2017 | Отправлено: 07:51 18-10-2023
dadu



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Други, как передать в msg строку с определенным началом и содержанием результата поиска с определенного символа.
 
Нужно чтобы сообщение было  "Закройте то что заблокировано"
 

Код:
for %%f in (c:\rezult.txt) do (
  findstr "Объект заблокирован:" %%f>NUL:
  IF errorlevel 1 (
    echo %%f >nul
  ) ELSE (
    findstr "Объект заблокирован:" %%f | msg * /time:5  
  )
)
 
 

 

Всего записей: 1222 | Зарегистр. 13-11-2002 | Отправлено: 09:35 18-10-2023 | Исправлено: dadu, 09:36 18-10-2023
Wu Tang



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

Код:
 
vssadmin delete shadows /all /quiet
vssadmin resize shadowstorage /for=c: /on=c: /maxsize=1%
net stop vss
powershell -command Disable-Computerrestore -drive "C:\"
 

по ps команда не проходит, пишет отсутствует завершающий символ, не пойму какой.
 
ps и может для 7 есть похожее, несколько дней ищу, ничего найти не смог.

----------
Всему свое время и каждому свой час!
Хочешь жить - умей вертеться!

Всего записей: 3909 | Зарегистр. 15-10-2007 | Отправлено: 21:31 18-10-2023 | Исправлено: Wu Tang, 22:26 18-10-2023
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vaskamy
Для любых на основе хрома. Только если имя ехе браузера отличается от имеющихся вариантов в батнике (мало ли, какая диковинка типа китайцев или ещё кого), то нужно дописать свою строку самостоятельно.
При желании, можно и переписать под лису, но с ней обычно и так нет проблем.
 
Добавлено:
На примере Brave.exe:
Код:
 if exist "Brave.exe" @set "BrowserFileName=Brave"  

Всего записей: 17956 | Зарегистр. 04-11-2010 | Отправлено: 08:22 19-10-2023
iNNOKENTIY21



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

Цитата:
powershell -command Disable-Computerrestore -drive "C:\"  

CMD мзду берёт, съедает одну кавычку.
Мзду не давать. Кавычки убрать совсем или заменить на меченые одинарные.

Всего записей: 3652 | Зарегистр. 16-08-2012 | Отправлено: 12:24 19-10-2023
insorg



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всё верно, конструкция
Код:
powershell -command "Disable-Computerrestore -drive 'C:\'"
принимает только одну пару внешних кавычек, а все внутренние - это одинарная кавычка с той же клавиши.
 
Добавлено:
Wu Tang
А чем не угодили стандартные методы типа
Код:
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore" /V DisableSR /t REG_DWORD /d 1 /f
или
Код:
sc config srservice start= disabled
или им подобные?
Зачем именно powershell брать?

Всего записей: 17956 | Зарегистр. 04-11-2010 | Отправлено: 12:37 19-10-2023
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dadu
Содержимое txt-файла и пример сообщения на его основе представьте.

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

Всего записей: 4132 | Зарегистр. 18-04-2005 | Отправлено: 12:56 19-10-2023
Wu Tang



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iNNOKENTIY21
я думал о ковычках, добавлял/убирал, но не попадал, чтобы заработало )))
insorg

Цитата:
А чем не угодили стандартные методы типа

Сейчас расскажу )))

Цитата:
 
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore" /V DisableSR /t REG_DWORD /d 1 /f
 

на 7-ке этот ключ не отключает, на 10-ке тоже, проверено.
если службу в disable переводишь, окно - защита системы выбивает ошибку.
те служба должна быть по дефолту - вручную.
на уровне gpo отключать не хочу.
задача перевести галочку в положение - отключено.
так вот на 10-ке срабатывает только PS команда, те ставит галочку в отключить, но в 7-ке она почему-то не работает, поэтому для 7-ки продолжаю искать решение.
 
ps сейчас протестил на 10-ке с правленной командой PS:

Код:
 
@echo off
vssadmin delete shadows /all /quiet
vssadmin resize shadowstorage /for=c: /on=c: /maxsize=1%
sc config vss start=demand
net stop vss
powershell -command "Disable-Computerrestore -drive 'C:\'"
 

отработало как надо, а вот на 7-ке не але (((

----------
Всему свое время и каждому свой час!
Хочешь жить - умей вертеться!

Всего записей: 3909 | Зарегистр. 15-10-2007 | Отправлено: 19:34 19-10-2023 | Исправлено: Wu Tang, 19:42 19-10-2023
dadu



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

Код:
NRC.log:20231018;14:29:07;Робот;C;Distr;DistUplErr;5;Объект заблокирован: Перемещение товаров ИВC00014955 (16.10.23);;

 
В сообщении нужно отправить

Код:
Закройте Перемещение товаров ИВC00014955 (16.10.23)

 
msg * "Закройте Перемещение товаров ИВC00014955 (16.10.23)"

Всего записей: 1222 | Зарегистр. 13-11-2002 | Отправлено: 04:03 20-10-2023 | Исправлено: dadu, 04:05 20-10-2023
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dadu
Не строку, а содержимое txt-файла.
 

Цитата:
msg * "Закройте Перемещение товаров ИВC00014955 (16.10.23)"

Это что?

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

Всего записей: 4132 | Зарегистр. 18-04-2005 | Отправлено: 09:14 20-10-2023
Fenrizz



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

Код:
for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12 delims=;:" %%A in ('FIND /I "Объект заблокирован" file.txt') do (
IF NOT "%%L"=="" echo Закройте %%L)  

Всего записей: 690 | Зарегистр. 12-09-2017 | Отправлено: 16:43 20-10-2023 | Исправлено: Fenrizz, 16:47 20-10-2023
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Новая версия проверки версии ОС. What's new:

  • Умеет различать Windows NT 3.1, Windows NT 3.5 и Windows NT 3.51.
  • Умеет различать Windows XP и Windows Server 2003.
  • Любая проверка умещается в одну строку.
  • Проверки стали лаконичнее, быстрее и надежнее (в предыдущей версии присутствовали неочевидные зависимости от внешних условий).

Подробнее...
 
Впрочем, с практической точки зрения различение ОС старее Windows 2000 едва ли представляет интерес: в них не поддерживается delayed expansion, без которого серьезный скрипт не напишешь. Поэтому вот другой вариант проверки, состоящий из двух частей:
Подробнее...

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

Всего записей: 4132 | Зарегистр. 18-04-2005 | Отправлено: 02:06 21-10-2023 | Исправлено: GCRaistlin, 01:04 23-10-2023
GCRaistlin



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

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

Всего записей: 4132 | Зарегистр. 18-04-2005 | Отправлено: 01:17 22-10-2023
Mr_Hat



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

Код:
echo off
for /f "tokens=2 delims==" %%a in ('wmic os get Caption /value ^| findstr /C:"Caption"') do set os=%%a
echo %os% | findstr /C:"Windows 7" > nul && goto 7
echo %os% | findstr /C:"Windows 8" > nul && goto 8
echo %os% | findstr /C:"Windows 8.1" > nul && goto 8.1
echo %os% | findstr /C:"Windows 10" > nul && goto 10
echo %os% | findstr /C:"Windows 11" > nul && goto 11
:7
echo %os%
pause
eof
:8
echo %os%
pause
eof
:8.1
echo %os%
pause
eof
:10
echo %os%
pause
eof
:11
echo %os%
pause
eof
 

Всего записей: 985 | Зарегистр. 04-10-2005 | Отправлено: 02:03 22-10-2023
Wu Tang



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
я все в поисках скрипта для отключения восстановления системы на win7, нагуглил какой-то - https://stackoverflow.com/questions/8612654/disable-computerrestore-doesnt-turn-off-system-protection
внизу страницы, я так понял, что это vbs скрипт, сохранил, но выдает, что ошибка в первой строке.

Код:
 
    public void disableSystemRestore(string drive)
    {
        try
        {
            ManagementScope scope = new ManagementScope("\\\\localhost\\root\\default");
            ManagementPath path = new ManagementPath("SystemRestore");
            ObjectGetOptions options = new ObjectGetOptions();
            ManagementClass process = new ManagementClass(scope, path, options);
            ManagementBaseObject inParams = process.GetMethodParameters("Disable");
            inParams["Drive"] =  drive;
            ManagementBaseObject outParams = process.InvokeMethod("Disable", inParams, null);
        }
        catch(ManagementException err)
        {
            MessageBox.Show("An error occurred while trying to execute the WMI method: " + err.Message);
        }
    }
 
 

а писали его по аналогии с включением - https://stackoverflow.com/questions/7707877/ways-to-check-state-of-system-restore-in-c-sharp/8101233#8101233 но мне то надо выключение.
может кто-н помочь подправить, что там выдает ошибку в первой строке.
 
нашел еще один на PS, но он почему-то тоже не работает: https://www.computerperformance.co.uk/powershell/wmi-systemrestore/

Код:
 
Function Set-SysRestore {
param(
$RestoreOpt = $(throw "please specify option, disable or enable"),
$sysName = $(throw "please specify a computer name or IP Address. `
Enclose entries containing spaces with single quotes")
)
switch ($RestoreOpt)
{
   "disable"
   {$SysRestore = [wmiclass]"\\$sysname\root\default:systemrestore"
    $SysRestore.Disable("C:\")}
   "enable"
   {$SysRestore = [wmiclass]"\\$sysname\root\default:systemrestore"
    $SysRestore.Enable("C:\")}
   }
                             }
 


----------
Всему свое время и каждому свой час!
Хочешь жить - умей вертеться!

Всего записей: 3909 | Зарегистр. 15-10-2007 | Отправлено: 03:23 22-10-2023 | Исправлено: Wu Tang, 03:59 22-10-2023
iNNOKENTIY21



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

Цитата:
я так понял, что это vbs скрипт

Это C# (CSharp).
Может дело в конкретной системе, раз не работает. Через GUI проверить.
Disable-ComputerRestore в PowerShell v2 появилось.

Всего записей: 3652 | Зарегистр. 16-08-2012 | Отправлено: 10:44 22-10-2023
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mr_Hat
Ваш вариант тормозной - раз, зависит от наличия внешних файлов - два, вылетит при проверке в несовместимых ОС - три (да и при определенных условиях - в совместимых тоже).
 
Добавлено:
Нужен же универсальный вариант, а не вариант, который, может быть, сработает.

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

Всего записей: 4132 | Зарегистр. 18-04-2005 | Отправлено: 11:24 22-10-2023 | Исправлено: GCRaistlin, 11:35 22-10-2023
titanieo



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. Прошу помощи, не смог решить мою задачу- руководство сказало разместить на сайте большое количество подписанных электронной подписью файлов PDF, конвертированных из ворда.  
Как в пакетном режиме наложить картинку штампа электронной подписи к файлам в каталоге с подкаталогами или как вариант наложить картинку в ворд документы(до конвертации их в PDF) и потом конвертировать или как вариант в пакетном режиме добавить к каждому PDF документу одну страницу(пустая страница с картинкой подписи)
Перепробовал все три варианта, не получается никаким из вариантов.
pdf24 умеет объединять из каталога файлы, но между собой. Так, чтобы к файлам в каталоге добавить одну страницу он не умеет

Всего записей: 20 | Зарегистр. 23-09-2013 | Отправлено: 12:01 22-10-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 189 190 191 192 193 194 195 196 197 198 199 200 201

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии - bat, cmd
Maz (20-06-2024 22:42): Командная строка, батники, сценарии - bat, cmd (7 часть)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru