Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.69/3152: Рейтинг темы: голосов - 3152, средняя оценка - 4.69
Эксперт WindowsАвтор FAQ
18008 / 7709 / 892
Регистрация: 25.12.2011
Сообщений: 11,483
Записей в блоге: 16
1

Полезные BAT/CMD скрипты

15.10.2012, 00:56. Показов 620450. Ответов 182

Author24 — интернет-сервис помощи студентам
В этой теме выкладываем скрипты, которые часто используются Вами
или на Ваш взгляд могут иметь большое практическое значение.

Также приветствуются скрипты высокой степени сложности, полезные с точки зрения
изучения принципа их работы.

Правила темы:
  • При выкладывании скрипта постарайтесь тщательно описывать принцип его работы и по-больше комментировать строки Вашего кода.
  • Код, состоящий из > 4 строк, помещайте под теги [SPOILER="Развернуть код..."]Ваш код[/SPOILER]. Также можно сделать 2 варианта: 1. Чистый код. 2. С комментариями.
  • Запрещаются любые обсуждения выложенных здесь работ;
  • если в этом есть необходимость, создайте отдельную тему в которой опишите замечание или проблему при работе с данным скриптом, указав ссылку на сообщение из этой темы (правый клик по слову "Permalink" вверху каждого сообщения).
  • Если Вы хотите внести исправление в выложенный Вами код - пишите мне в личку ссылку на Ваше старое сообщение и новый исправленный вариант. (полный вариант с тегами Вашего старого сообщения можно получить, нажав на него - кнопка "Цитата").
  • Допускается размещение обзора программ, помогающих редактировать/отлаживать код.


Схожая тема: BAT/CMD файлы
Смежная тема: Полезные VBS скрипты и программы по работе с ними
Ссылка на набор полезных скриптов (предыдущая шапка от bombus) BAT/CMD файлы


******************* Перечень полезных скриптов: *******************

Архивация и резервное копирование
Создание CAB-архивов ссылка

Безопасность
Удаление последствий вируса (фейковые папки на флешке) ALINK
Стать владельцем папки/файла, получить полные права (пункт контекстного меню (Reg-файл) ALINK
Смена владельца и прав на папку и ее содержимое, в которой запущен батник (Full Access <-> Read Only) ссылка

Дата, время
Конвертация даты/времени из/в UNIX-формат(в секундах после 1-янв-1970 00:00:00) ссылка

Интерфейс
Крутящаяся палка (имитация) ссылка
Вызов GUI диалогового окна выбора папки ссылка
Разноцветный вывод в консоли. ссылка Цветная роза. ссылка
Диалоговое меню выбора файла ссылка

Компиляция
Помощник компиляции исходных кодов С# (.cs) через консольный NET.FrameWork компилятор ссылка

Операционная система
Восстановление шрифтов после сбоя ссылка
Пищалка (сигнал встроенного динамика, подобие Beep) ссылка
Регистрация всех библиотек DLL и OCX ссылка
Проверка целостности системных файлов утилитой sfc /scannow с выводом лога и автоопределением месторасположения диска ссылка

Сеть
Подсчёт маски подсети на основании двух крайних значений диапазона. ALINK
Пакетное получение информации о IP-адресах и построение HTML-отчёта. ALINK
GetIP/GetMAC/Get default gateway ссылка

Процессы
Завершение процесса (с листингом и выбором через меню) ссылка
Многопроцессное создание пустых файлов (бенчмарк для винчестера) ссылка
Отслеживание зависшего процесса и его перезапуск с указанным приоритетом ссылка
Process Change Monitor (мониторинг и протоколирование изменений в списке запущенных процессов) ссылка

Текстовые операции, кодировка
Вывод текста без переноса на новую строку ALINK
Перекодировка CP OEM-866 <-> WIN-1251 - 1) CMD 2) VBA 3) ASM (exe+src) ссылка
Помощь по всем командам вашей версии Windows / DOS ссылка
Транслитерация файлов, в именах которых есть кириллица (файловые операции) ссылка
Преобразование текстового файла в кодировку Unicode (файловые операции) ссылка
Перекодировщик Reversed Hex в символьную строку ссылка

Файловые операции, разделы
Взаимное копирование содержимого 2 папок друг в друга ALINK
Прогресс-бар копирования файлов ссылка
Циклическое копирование файлов по каталогам с ожиданием завершения их дозаписи в исходную папку. ссылка
Создание нуль-копии папки для выкладывания на форуме ссылка
Получение серийного номера всех съемных устройств и физических жестких дисков (не разделов). Получение имен разделов физических накопителей (кроме оптических). ссылка

Другое
Расчёт индекса массы тела и идеального веса ссылка
22
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2012, 00:56
Ответы с готовыми решениями:

Batch (CMD/BAT) несколько заданий на CMD/BAT
1.Напишите bat файл на диске с ,который будет искать на всех дисках файлы с расширением...

CMD/BAT - Bat для запуска приложения при падении нагрузки ЦП другого процесса
Суть вопроса: есть батник запуска приложения @echo off start /d&quot;C:\Program...

Как запустить bat файл командой cmd /k передав bat файлу дополнительные аргументы
Как передать bat файлу, запускаемому через cmd /k аргументы? Это был первый вопрос, а теперь вот...

Bat/cmd
Добро утро. Директор придумал просто одну вещь. Изложу ситуацию. У меня есть папка obchee_s_ras...

182
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8624 / 4356 / 549
Регистрация: 13.03.2013
Сообщений: 15,867
Записей в блоге: 16
20.07.2021, 12:10 161
Author24 — интернет-сервис помощи студентам
Аудит компьютеров
Windows Batch file
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
chcp 65001
::Создание папки с именем компьютера на сервере
MD \\Server\ARM\%COMPUTERNAME%
::Модель материнской платы
wmic baseboard get Manufacturer >> \\Server\ARM\%COMPUTERNAME%\%COMPUTERNAME%-conf.txt
wmic baseboard get product >> \\Server\ARM\%COMPUTERNAME%\%COMPUTERNAME%-conf.txt
::Информация о процессоре
wmic cpu get name >> \\Server\ARM\%COMPUTERNAME%\%COMPUTERNAME%-conf.txt
::Суммарный объем ОЗУ
wmic OS Get TotalVisibleMemorySize >> \\Server\ARM\%COMPUTERNAME%\%COMPUTERNAME%-conf.txt
::Определение модели ноутбука
wmic csproduct get name >> \\Server\ARM\%COMPUTERNAME%\ARM\%COMPUTERNAME%-conf.txt
::Модель и объем накопителей
wmic diskdrive get model, SerialNumber, size >> \\Server\ARM\%COMPUTERNAME%\%COMPUTERNAME%-conf.txt
::Версия установленной ОС
wmic os get name >> \\Server\ARM\%COMPUTERNAME%\%COMPUTERNAME%-conf.txt
wmic os get version >> \\Server\ARM\%COMPUTERNAME%\%COMPUTERNAME%-conf.txt
::Список установленных программ
wmic product get name, version >> \\Server\ARM\%COMPUTERNAME%\%COMPUTERNAME%-soft.txt
::Сетевые параметры системы
ipconfig /all >> \\Server\ARM\%COMPUTERNAME%\%COMPUTERNAME%-lan.txt
::Статические маршруты системы
route print >> \\Server\ARM\%COMPUTERNAME%\%COMPUTERNAME%-lan.txt
rem подключенные сетевые папки
net use >> \\Server\ARM\%COMPUTERNAME%\%COMPUTERNAME%-lan.txt
::Имя текущего пользователя и домена
echo %userdomain% >> \\Server\ARM\%COMPUTERNAME%\%COMPUTERNAME%-user.txt
echo %username% >> \\Server\ARM\%COMPUTERNAME%\%COMPUTERNAME%-user.txt
::Вывести список подключенных принтеров и портов
wmic printer get DeviceID, PortName >> \\Server\ARM\%COMPUTERNAME%\%COMPUTERNAME%-Printers.txt
::Завершение работы интерпретатора cmd
Exit /b
0
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8624 / 4356 / 549
Регистрация: 13.03.2013
Сообщений: 15,867
Записей в блоге: 16
02.08.2021, 16:30 162
Включение сетевого обнаружения на Windows 7/8/10 Pro/Corp
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
@echo off
::Включение служб для сетевого обнаружения
::Обнаружение SSDP
sc config SSDPSRV start= auto
net start SSDPSRV
::Публикация ресурсов обнаружения функций
sc config FDResPub start= auto
net start FDResPub
::Рабочая станция
sc config LanmanWorkstation start= auto
net start LanmanWorkstation
::Сервер
sc config LanmanServer start= auto
net start LanmanServer
::Узел универсальных PNP-устройств
sc config upnphost start= auto
net start upnphost
::Хост поставщика функции обнаружения
sc config fdPHost start= auto
net start fdPHost
::Включить обнаружение сети
netsh advfirewall firewall set rule group="Обнаружение сети" new enable=Yes
::Завершение работы интерпретатора
Exit /b
0
Нарушитель
21 / 47 / 5
Регистрация: 03.06.2019
Сообщений: 368
Записей в блоге: 10
08.08.2021, 11:25 163
Проверяем, есть ли интернет подключение

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Echo Off
 
REM == EXAMPLE =============================================
Call :CheckInternet
echo Network is avalible: %network_connection_state%
pause
REM ========================================================
 
 
REM == CODE ================================================
:CheckInternet
Set host1=wikipedia.org
Set host2=google.com
 
>"nul"="%SystemRoot%\System32\ping.exe" %host1% -l 1 -n 1
If "%errorlevel%"=="1" (>"nul"="%SystemRoot%\System32\ping.exe" %host2% -l 1 -n 2);
If "%errorlevel%"=="0" (Set "network_connection_state=True") Else (Set "network_connection_state=False");
Exit /b
REM ========================================================
0
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8624 / 4356 / 549
Регистрация: 13.03.2013
Сообщений: 15,867
Записей в блоге: 16
11.08.2021, 07:37 164
Цитата Сообщение от HACKER KAY Посмотреть сообщение
Проверяем, есть ли интернет подключение
Обычно проверяю так
Windows Batch file
1
2
@echo on
ping 8.8.8.8 -t
0
1 / 1 / 0
Регистрация: 12.06.2015
Сообщений: 67
11.09.2021, 21:50 165
Различные функции "str_len". См. архив.
Сравнение времени выполнения функций на длинных строках.
.
Функции "str_len" для использования форумчанами.
.
Наиболее лучшие функции "str_len" .
.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
:strlen10  StrVar  [RtnVar]
setlocal EnableDelayedExpansion
set "s=#!%~1!"
set /a "len=0"
for /l %%A in (13,-1,0) do (
  set /a "len|=1<<%%A"
  for %%B in ("!len!") do if "!s:~%%B,1!"=="" set /a "len&=~1<<%%A"
)
endlocal&if "%~2" neq "" (set /a "%~2=%len%") else echo %len%
exit /b
.
Windows Batch file
1
2
3
4
5
6
:strlen2  StrVar  [RtnVar]
setlocal EnableDelayedExpansion
echo("!%~1!">"tempFile"
for %%F in ("tempFile") do set /a "len=%%~zF-2"
endlocal&if "%~2" neq "" (set /a "%~2=%len%") else echo %len%
exit /b
.
Вложения
Тип файла: rar test_strlen.rar (3.1 Кб, 37 просмотров)
1
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8624 / 4356 / 549
Регистрация: 13.03.2013
Сообщений: 15,867
Записей в блоге: 16
10.10.2021, 08:12 166
Создание ibases.v8i в директории по умолчанию 1С
Windows Batch file
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
@echo off
::Переход в каталог со списком баз по умолчанию
CD /D "%appdata%\1C\1CEStart"
::Удаление ibases.v8i
DEL ibases.v8i
::Создание нового ibases.v8i
set "F="%appdata%\1C\1CEStart\ibases.v8i""
::Название базы в квадратных скобках, как отображается в списке
@echo [Информационная база]>%F%
::Строка соединения с информационной базой: для файлового варианта Connect=File=<Путь>
::для клиент-серверного варианта Connect=Srvr=<ИмяСервера1С>;Ref=<ИмяБазы1С>.
@echo Connect=Srvr="СЕРВЕР";Ref="БАЗА";>>%F%
::Уникальный идентификатор базы в рамках файла, формируется автоматически
@echo ID=00000000-00000-0000-0000-000000000000>>%F%
::Порядок в списке при представлении списком;
@echo OrderInList=-1>>%F%
::Наименование ветви в дереве
@echo Folder=/>>%F%
::Порядок в ветви при представлении деревом
@echo OrderInTree=256>>%F%
::Если значение отличается от 0, то база удаляется из списка
@echo External=0>>%F%
::Скорость соединения для тонкого и веб клиентов: Normal — обычная, Low — низкая.
@echo ClientConnectionSpeed=Normal>>%F%
::Тип клиентского приложения: Auto – автоматический выбор типа клиентского приложения;
::ThinClient – тонкий клиент, ThickClient – толстый клиент, WebClient – веб-клиент.
@echo App=Auto>>%F%
::Аутентификация Windows (1 — вход под учетной записью ОС (авто), а в случае ошибки запрашивается имя пользователя и пароль, 0 — аутентификация 1С);
@echo WA=1>>%F%
::Версия платформы
@echo Version=8.3>>%F%
::Завершение работы интерпретатора
exit /b
0
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8624 / 4356 / 549
Регистрация: 13.03.2013
Сообщений: 15,867
Записей в блоге: 16
26.10.2021, 07:29 167
Оптимизация системы под SSD
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@echo off
::Остановка и отключение службы SuperFetch
sc stop "SysMain" && sc config "SysMain" start=disabled
::Остановка и отключение службы Индексирования
sc stop "wsearch" && sc config "wsearch" start=disabled
::Отключение Prefetch
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters" /v EnablePrefetcher /t REG_DWORD /d 0 /f
::Отключение ClearPageFileAtShutdown
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v ClearPageFileAtShutdown /t REG_DWORD /d 0 /f
::Отключение LargeSystemCache
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v LargeSystemCache /t REG_DWORD /d 0 /f
::Отключение гибернации
powercfg -h off
::Активация TRIM
fsutil behavior set DisableDeleteNotify 0
::Отключение дефрагментации в Планировщике задач
schtasks /Change /TN \Microsoft\Windows\Defrag\ScheduledDefrag /DISABLE
::Перезагрузка компьютера, чтобы изменения вступили в силу
shutdown -r -t 000
0
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8624 / 4356 / 549
Регистрация: 13.03.2013
Сообщений: 15,867
Записей в блоге: 16
26.10.2021, 07:30 168
Один из вариантов решения проблем при сбоях печати принтера Windows 7/8/10
Windows Batch file
1
2
3
4
5
6
7
8
9
@echo off
::Остановка службы Диспетчер печати
net stop Spooler
::Очистка очереди печати
DEL /F /Q %systemroot%\System32\spool\PRINTERS\*
::Запуск службы Диспетчер печати
net start Spooler
::Завершение работы интерпретатора
exit /b
Вложения
Тип файла: zip CleanSpooler.zip (394 байт, 33 просмотров)
0
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8624 / 4356 / 549
Регистрация: 13.03.2013
Сообщений: 15,867
Записей в блоге: 16
08.11.2021, 08:58 169
Перезапуск агента сервера 1С с логированием Windows Server 2012/2016/2019 (на версиях выше не проверял)
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off
::Указываем где будет хранится наш лог-файл, куда будет писаться дата и время запуска и остановки службы
set logfile="C:\Windows\Logs\1C\1C_agent.txt"
::Пишем в Лог дату и время начала остановки
echo %date% %time% >>%logfile%
::Останавливаем службу агента сервера и пишем ее статус в лог файл
net stop "1C:Enterprise 8.3 Server Agent (x86-64)" >>%logfile%
::Далее делаем задержку в 15 секунд, чтобы дождаться, пока служба останавливается
ping -n 16 localhost>Nul
::Опять записываем в лог дату в время
echo %date% %time% >>%logfile%
::Запускаем службу обратно
net start "1C:Enterprise 8.3 Server Agent (x86-64)" >>%logfile%
::Делаем задержку в 5 минут, если служба не остановилась за 15 секунд, то она не запустится естественно, что то видимо зависло сильно и будем ждать 5 минут.
ping -n 301 localhost>Nul
::Далее проверяем, запустилась ли служба и работает ли она? Если не работает, то выполняем ее повторный старт.
SetLocal EnableExtensions
Set ProcessName=1C:Enterprise 8.3 Server Agent (x86-64)
TaskList /FI "ImageName EQ %ProcessName%" | Find /I "%ProcessName%"
If %ErrorLevel% NEQ 0 net start "1C:Enterprise 8.3 Server Agent (x86-64)"
::Завершение работы интерпретатора cmd
exit /b
За основу взят материал отсюда
1
ᴁ®
Эксперт MS Access
3871 / 2200 / 462
Регистрация: 13.12.2016
Сообщений: 7,557
Записей в блоге: 5
02.12.2021, 12:47 170
Цитата Сообщение от Maks Посмотреть сообщение
Аудит компьютеров
все здорово, но в файл все падает в кодировке UTF-16LE+BOM и chcp 65001 тут не поможет.
Вот с таким костылем через временный файл все как надо.
Пример кусочка кода.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
setlocal EnableExtensions DisableDelayedExpansion
 
%SystemRoot%\System32\wbem\wmic.exe BaseBoard get SerialNumber  >"%TEMP%\%~n0.tmp"
%SystemRoot%\System32\wbem\wmic.exe baseboard get Manufacturer  >>"%TEMP%\%~n0.tmp"
%SystemRoot%\System32\wbem\wmic.exe baseboard get product  >>"%TEMP%\%~n0.tmp"
%SystemRoot%\System32\wbem\wmic.exe cpu get name  >>"%TEMP%\%~n0.tmp"
%SystemRoot%\System32\wbem\wmic.exe OS Get TotalVisibleMemorySize  >>"%TEMP%\%~n0.tmp"
%SystemRoot%\System32\wbem\wmic.exe csproduct get name  >>"%TEMP%\%~n0.tmp"
%SystemRoot%\System32\wbem\wmic.exe diskdrive get model, SerialNumber, size  >>"%TEMP%\%~n0.tmp"
%SystemRoot%\System32\wbem\wmic.exe os get name  >>"%TEMP%\%~n0.tmp"
 
if not exist "%TEMP%\%~n0.tmp" goto EndBatch
 
for /F "skip=1 tokens=1,2" %%I in ('type "%TEMP%\%~n0.tmp"') do echo %%I %%J >> %p%
del "%TEMP%\%~n0.tmp"
 
:EndBatch
endlocal
1
6243 / 2118 / 335
Регистрация: 10.12.2013
Сообщений: 7,314
02.12.2021, 22:41 171
можно подсунуть wmic свой формат вывода в виде файла .XSL,
где будет прописан тег xsl:output с нужной тебе кодировкой

MY.FORMAT.XSL
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="UTF-8"/>
      
<xsl:template match="@* | node()" >
    <xsl:apply-templates select="@* | node()"/>
</xsl:template>
 
<xsl:template match="PROPERTY" > 
    <xsl:value-of select="@NAME" /> : <xsl:value-of select="VALUE"/>
    <xsl:text>
</xsl:text>                                         
</xsl:template>
 
</xsl:stylesheet>
REPORT.SYSINFO.BAT
Windows Batch file
1
2
@DELETE SYSINFO.TXT 2>NUL
@WMIC OS Get Name, TotalVisibleMemorySize /format:MY.FORMAT.XSL >> SYSINFO.TXT
Преимущества использования XSLT в связке с WMIC:
  • Кодировку файла результата задаёшь ты сам и происходит она мгновенно и без ограничений, которыми грешат рецепты в этом разделе
  • Формат вывода тоже полностью твой
  • доступны внутренние функции XSLT, относящиеся к числовыми преобразованиям ( деление,умножение,сложение,округление ) для действительных чисел ( общеизвестно, что сам cmd не умеет н и ч е г о, что связано с действительными числами ), а также строковые функции
  • доступны функции расширения (!), которые можно реализовать на языке VBScript и JScript

Добавлено через 13 минут
Для справки:

Вот XML, с которым надо поработать, получившийся после исполнения запроса WMIC:

Windows Batch file
1
wmic computersystem GET TotalPhysicalMemory, Domain, NumberOfProcessors, NumberOfLogicalProcessors /format:rawxml
Кликните здесь для просмотра всего текста
XML
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
<COMMAND SEQUENCENUM="1" ISSUEDFROM="WINXP" STARTTIME="02-04-2015T23:52:43" EVERYCOUNT="0"><REQUEST><COMMANDLINE> computersystem get TotalPhysicalMemory, Domain, NumberOfProcessors, NumberOfLogicalProcessors /format:rawxml </COMMANDLINE>
<COMMANDLINECOMPONENTS><NODELIST><NODE>WINXP</NODE>
</NODELIST>
</COMMANDLINECOMPONENTS>
<CONTEXT><NAMESPACE>root\cimv2</NAMESPACE>
<ROLE>root\cli</ROLE>
<IMPLEVEL>IMPERSONATE</IMPLEVEL>
<AUTHLEVEL>PKTPRIVACY</AUTHLEVEL>
<LOCALE>ms_409</LOCALE>
<PRIVILEGES>ENABLE</PRIVILEGES>
<TRACE>OFF</TRACE>
<RECORD>N/A</RECORD>
<INTERACTIVE>OFF</INTERACTIVE>
<FAILFAST>OFF</FAILFAST>
<OUTPUT>STDOUT</OUTPUT>
<APPEND>STDOUT</APPEND>
<USER>N/A</USER>
<AGGREGATE>ON</AGGREGATE>
</CONTEXT>
</REQUEST>
<RESULTS NODE="WINXP"><CIM><INSTANCE CLASSNAME="Win32_ComputerSystem"><PROPERTY NAME="Domain" TYPE="string"><VALUE>WORKGROUP</VALUE>
</PROPERTY>
<PROPERTY NAME="NumberOfLogicalProcessors" TYPE="uint32"><VALUE>2</VALUE>
</PROPERTY>
<PROPERTY NAME="NumberOfProcessors" TYPE="uint32"><VALUE>1</VALUE>
</PROPERTY>
<PROPERTY NAME="TotalPhysicalMemory" TYPE="uint64"><VALUE>2146676736</VALUE>
</PROPERTY>
</INSTANCE>
</CIM>
</RESULTS>
</COMMAND>
2
0 / 0 / 0
Регистрация: 13.07.2021
Сообщений: 1
13.02.2022, 21:52 172
Скрипт который копирует пользовательские папки (Desktop, Documents, Downloads и др.) и создает символические ссылки.

По умолчанию после установки операционной системы Windows 7,10 (на Windows 11 еще не пробовал)
Пользовательские каталоги (Desktop, Documents, Downloads и др.) находятся на системном диске по пути:
С:\Users\Пользователь\Desktop
С:\Users\Пользователь\Documents
и так далее.
Если по какой то причине происходит сбой Windows и система не грузится то для сохранения документов, рабочего стола фотографий и др. где обычно пользователи хранят самые нужные фаилы..... Нужно грузится с помощью Windows Live и копировать все данные на другой раздел (если этот раздел есть и диск не испорчен).

Для таких целей я создал небольшой скрипт на bat который я запускаю после установки windows и он автоматически создает пользовательские каталоги там где я укажу при старте скрипта (например D:\User) скопирует всю информацию с стандартных каталогов, потом их удалит и в конце создаст символические ссылки на новые каталоги
таким образом Windows по умолчанию будет сохранять документы на С:\Users\Пользователь\Documents а там символическая ссылка на D:\User\Documents.
И так далее все основные каталоги пользователя: Desktop, Documents, Downloads, Music, Videos, Pictures

Windows Batch file
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
@echo off
chcp 866
 
:start
cls
title Script copy USER PROFILE v1.1
color 3
 
echo Укажите имя каталога от корня, вида:( D:\User или D:\User\Admin )
set /p var=" "
 
set DISK=%var%
if not exist %DISK% ( 
mkdir %DISK%
echo [.ShellClassInfo] > %DISK%\desktop.ini
echo IconResource=%SystemRoot%\system32\imageres.dll,117 >> %DISK%\desktop.ini
attrib +S %DISK%
attrib +R +S +H %DISK%\desktop.ini
)
 
if exist %DISK% (
  REM *****************************************************************
  call :CopyProfile Desktop
  call :CopyProfile Documents
  call :CopyProfile Downloads
  call :CopyProfile Music
  call :CopyProfile Videos
  call :CopyProfile Pictures
  REM *****************************************************************  
  call :CreateProfile Fotos 326
  call :CreateProfile Install 162
  call :CreateProfile Arhiv 8
  REM *****************************************************************
  mklink /D "%DISK%\Documents\Мои видеозаписи" %DISK%\Videos
  mklink /D "%DISK%\Documents\Мои рисунки" %DISK%\Pictures 
  mklink /D "%DISK%\Documents\Моя музыка" %DISK%\Music
  mklink /D "%DISK%\Documents\Мои загрузки" %DISK%\Downloads
  mklink /D "%DISK%\Documents\Мои фотографии" %DISK%\Fotos
  REM ***************************************************************** 
  pause
) else goto Error
 
exit  
REM *****************************************************************
 
:CopyProfile
set KAT=%1
set KATALOG=%USERPROFILE%\%KAT%
set KATALOG_NEW=%DISK%\%KAT%
if not exist %KATALOG_NEW% mkdir %KATALOG_NEW%
 xcopy %KATALOG% %KATALOG_NEW% /c /v /s /e /i /h /y >nul
 attrib +S %KATALOG_NEW%
 attrib +R +S +H %KATALOG_NEW%\desktop.ini
 rmdir /s /q %KATALOG%
 mklink /D %KATALOG% %KATALOG_NEW%
exit /b
 
:CreateProfile
set KAT=%DISK%\%1
set ICO=%2
mkdir %KAT%
echo [.ShellClassInfo] > %KAT%\desktop.ini
echo IconFile=%SystemRoot%\system32\shell32.dll >> %KAT%\desktop.ini
echo IconResource=%SystemRoot%\System32\shell32.dll,%ICO% >> %KAT%\desktop.ini
attrib +S %KAT%
attrib +R +S +H %KAT%\desktop.ini 
exit /b
 
:Error   
color c
echo %DISK%!!!
echo Проверьте путь к каталогу!
pause
goto start
При запуске скрипта он спросит куда сохранить пользовательские каталоги
нужно указывать полный путь, например: D:\User или D:\Viktor или D:\User\Viktor
Скрипт создаст каталоги если их не существует
а так же создает каталоги не совсем пользовательские но тоже могут понадобиться
Fotos, Install, Arhiv

Эти каталоги можно исключить закоментировав или удалив строчки в скрипте
например убрав строчку call :CreateProfile Install 162
папка Install создаваться не будет
А так же вы можете добавить свои строчки с названием папок.....
0
Нарушитель
21 / 47 / 5
Регистрация: 03.06.2019
Сообщений: 368
Записей в блоге: 10
28.02.2022, 17:40 173
Текст в Азбуку Морзе и обратно

Об этом я написал в своём блоге
0
2 / 2 / 0
Регистрация: 22.01.2021
Сообщений: 162
06.06.2022, 20:43 174
Вызов GUI диалогового окна выбора файла
Использование стандартного диалога выбора файла (на основе «<INPUT type='file' …>»).

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
@echo off
setlocal
 
for /f "tokens=2 delims=:" %%i in ('chcp') do (
    set sPrevCP=%%i
    chcp 1251 >nul
)
 
for /f "usebackq delims=" %%i in (
    `@"%systemroot%\system32\mshta.exe" "about:<FORM><INPUT type='file' name='qq'></FORM><script>document.forms[0].elements[0].click();var F=document.forms[0].elements[0].value;try {new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(F)};catch (e){};close();</script>" ^
    1^|more`
) do set sFileName=%%i
 
chcp %sPrevCP% >nul
 
if defined sFileName (
    echo Выбран файл: [%sFileName%].
) else (
    echo Файл не был выбран.
)
 
endlocal
exit /b 0
0
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8624 / 4356 / 549
Регистрация: 13.03.2013
Сообщений: 15,867
Записей в блоге: 16
08.07.2022, 08:44 175
Установка принтера по умолчанию Windows 7/8/8.1/10
Windows Batch file
1
2
3
4
5
6
7
@echo off
::Установка принтера по умолчанию в реестре (в данном случае ECOSYS M3040dn)
reg Add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows" /v Device /t REG_SZ /d "ECOSYS M3040dn,winspool,Ne05:" /y
::Применение политики, чтобы не перезагружать систему для применения параметра в реестре
gpupdate /force
::Завершение работы интерпретатора
Exit /b
0
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8624 / 4356 / 549
Регистрация: 13.03.2013
Сообщений: 15,867
Записей в блоге: 16
08.08.2022, 15:32 176
Создание задания на завершение работы программы/процесса в определенное время (на примере 1С) в Windows 7/8/8.1/10
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
:: Создание батника в %appdata%
set "F="%appdata%\1C\taskkill1c.bat""
echo @echo off>>%F%
echo taskkill.exe /IM 1cv8c.exe /F>>%F%
echo Exit /b>>%F%
:: Создание задачи в планировщике от имени текущей учетной записи, 02:00 ежедневно
schtasks /create /f /rl highest /sc daily /st 02:00:00 /tn Taskkill_1C /tr "'%appdata%\1C\taskkill1c.bat'"
::Завершение работы интерпретатора командной строки
Exit /b
0
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8624 / 4356 / 549
Регистрация: 13.03.2013
Сообщений: 15,867
Записей в блоге: 16
22.12.2022, 07:57 177
Обновление конфигурации оборудования в "Диспетчере устройств" (Windows 7/8/8.1/10)
Для реализации потребуется скачать и установить Devcon.Installer.zip
Windows Batch file
1
2
3
4
5
6
@echo off
::Указать путь до devcon.exe
::Если путь содержит пробелы его необходимо заключить в кавычки
"%userprofile%\AppData\Roaming\DevCon\devcon.exe" rescan
::Завершение работы интерпретатора командной строки
exit /b
0
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8624 / 4356 / 549
Регистрация: 13.03.2013
Сообщений: 15,867
Записей в блоге: 16
08.01.2023, 19:13 178
Отключение папки Recent в Windows 8.1/10:
Windows Batch file
1
2
3
@echo off
reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer" /v NoRecentDocsHistory /t REG_DWORD /d 1
exit /b
0
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
8624 / 4356 / 549
Регистрация: 13.03.2013
Сообщений: 15,867
Записей в блоге: 16
08.01.2023, 20:26 179
Принудительная синхронизация с сервером времени на регулярной основе (актуально, если умерла батарейка CMOS, требуется активное подключение к интернету)
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@echo off
:: Импорт ключей в реестр, увеличивающих абсолютное значение
reg add "HKLM\System\CurrentControlSet\services\w32time\Config" /f /v MaxNegPhaseCorrection /t REG_DWORD /d 0xffffffff
reg add "HKLM\System\CurrentControlSet\services\w32time\Config" /f /v MaxPosPhaseCorrection /t REG_DWORD /d 0xffffffff
::Запуск и установка автоматического типа запуска службы времени Windows  на случай, если служба неактивна
net start W32Time
sc config W32Time start= auto
::Изменение конфигурации службы времени, для использования сервера NTP ru.pool.ntp.org
W32Tm /config /syncfromflags:manual /manualpeerlist:ru.pool.ntp.org /update
::Создание командного файла на принудительный запуск заданий в планировщике:
set "F="%ProgramFiles%\SyncTime.bat""
echo @echo off>>%F%
echo C:\Windows\System32\schtasks.exe /run /tn "\Microsoft\Windows\Time Synchronization\ForceSynchronizeTime">>%F%
echo C:\Windows\System32\schtasks.exe /run /tn "\Microsoft\Windows\Time Synchronization\SynchronizeTime">>%F%
echo exit /b>>%F%
:: Создание задачи в планировщике с триггером "При входе в систему"
schtasks /create /RU "LOCAL SERVICE" /f /rl highest /sc onlogon /tn SyncTime /tr "'%ProgramFiles%\SyncTime.bat'"
::Завершение работы интерпретатора
exit /b
Актуально для Windows 7/8/10
Вложения
Тип файла: zip SyncTime.zip (958 байт, 26 просмотров)
0
Эксперт WindowsАвтор FAQ
18008 / 7709 / 892
Регистрация: 25.12.2011
Сообщений: 11,483
Записей в блоге: 16
22.04.2023, 20:02  [ТС] 180
Внутри две версии загрузчика файла на FTP / SFTP, выбирайте на ваш вкус, без особой разницы.

1) На основе Putty
Необходимо установить в систему: https://www.putty.org/

2) На основе Curl
Можете юзать curl.exe в комплекте, или скачать по ссыке https://curl.se/windows/ (забирать из папки "./bin")
Прим.: Curl из состава Windows 10+ не подойдёт!

-------------
Настройка:
Кликните здесь для просмотра всего текста

Нажмите по батнику sftp_uploader правой кнопкой мыши - Изменить:
Код
:: server settings
set server=5.13.10.21
set port=22
set user=username
set pass=password
set servpath=/home/
:: use "ftp" (usually, port 21) or "sftp" (usually, port 22)
set protocol=sftp
После знака = замените значения на настройки своего сервера.
servpath - это путь внутри вашего сервера (для загрузки файлов в конкретную папку). Путь должен начинаться от самой корневой папки (иногда ваш хост может не отображать имя корневой папки, - поинтересуйтесь у тех-поддержки вашего хостинга).
Также обратите внимание, что обычно у вас нет прав для записи в самую корневую папку, поэтому правильно указывайте полный путь к папке, куда у вас есть право на запись.

Если у вас FTP, а не Secure FTP, то не забудьте поменять значение на set protocol=ftp
У FTP обычно стандартный порт 21, у SFTP 22.

Установка и использование:

1) для использования достаточно просто перетащить нужный для загрузки файл поверх файла батника sftp_uploader

2) для удобства, вы можете установить этот скрипт в контекстное меню "ПКМ -> Отправить".
Для этого:
- скопируйте папку с sftp_uploader в укромное место, например, в C:\Program Files\sftp_uploader\
- создайте ярлык файла sftp_uploader и присвойте ему понятное вам имя
- нажмите Win + R и введите Shell::SendTo
- откроется окно со списком элементов контекстного меню "Отправить". Добавьте в этот список ярлык от sftp_uploader, созданный ранее.

Для использования достаточно будет нажать правой кнопкой мыши по отправляемому файлу, выбрать пункт "Отправить" (в Windows 11, придется дополнительно нажать "Показать дополнительные параметры" или применить твик отключения "умного" меню) - и затем нажать на имя, которое вы задали ярлыку sftp_uploader.

Результат:

При успешной загрузке вы увидите надпись "SUCCESS", которая продержится на экране 3 секунды. При неудачной, будет выведена конкретная ошибка и окно не будет закрываться.

--------------

Удачи!


Код скриптов

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@echo off
SetLocal EnableExtensions
cd /d "%~dp0"
 
:: server settings
set server=5.13.10.21
set port=22
set user=username
set pass=password
set servpath=/home/
:: use "ftp" (usually, port 21) or "sftp" (usually, port 22)
set protocol=sftp
 
title SFTP Uploader by Alex Dragokas
 
call :UploadFTP "%~1" && (echo SUCCESS & timeout /T 3) || (echo [ERROR] during upload. & pause)
goto :eof
 
:UploadFTP [local file]
  echo Uploading ...
  curl.exe --cacert "cacert.pem" --upload-file "%~1" %protocol%://%user%:%pass%@%server%:%port%%servpath%
exit /b %errorlevel%
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
SetLocal EnableExtensions
cd /d "%~dp0"
 
:: server settings
set server=5.13.10.21
set port=22
set user=username
set pass=password
set servpath=/home/
 
title SFTP Uploader by Alex Dragokas
 
call :UploadFTP "%~1" && (echo SUCCESS & timeout /T 3) || (echo [ERROR] during upload. & pause)
goto :eof
 
:UploadFTP [local file]
  echo Uploading ...
  ::curl -# --cacert "cacert.pem" --upload-file "%~1" %server%:%servpath%|| echo [ERROR] during upload.
  "C:\Program Files\PuTTY\pscp.exe" -P %port% -l %user% -pw %pass% "%~1" %server%:%servpath%
exit /b %errorlevel%
Вложения
Тип файла: zip sftp_uploader.zip (5.30 Мб, 37 просмотров)
1
22.04.2023, 20:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2023, 20:02
Помогаю со студенческими работами здесь

рисунок в BAT\CMD
Если кому будет не сложно можете нарисовать знак сбербанка и слово рядом) Буду очень благадарен

Меню в BAT/CMD
Вопрос от полного ламера. У меня такая проблемма надо сделать меню в CMD чтобы при нажатии 1...

Задание CMD/BAT
1. Изменить вид приглашения, поместив туда время без секунд и миллисекунд. 2. Создать в текущем...

На каком языке программирования пишутся скрипты для bat и vbc?
День добрый. Подскажите на каком языке пишутся скрипты для bat и vbc. Я знаю что под линукс идет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
180
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru