Также можно запрограммировать выполнение «батника» на какой-то определенный день или время с помощью планировщика заданий.
Скажу сразу, что приведенные ниже примеры не претендуют на оригинальность и новизну, и, возможно, вы встречали их ранее. Но, тем не менее, я считаю их полезными, и хочу, чтобы вы с ними ознакомились. Надеюсь, авторы не будут против обнародования их интеллектуальной собственности:).
1. Получаем серийные номера всех съемных устройств и физических жестких дисков, а также имена разделов физических накопителей.
@echo off&:: by Alex Dragokas
Setlocal EnableDelayedExpansion EnableExtensions
Echo.
::Получаем PNPDeviceID и PhysicalDrive Name устройств, подключенных по интерфейсу USB
echo Перечень cъемных накопителей:
echo.
For /F "Skip=2 Tokens=2-4 delims=," %%i In (
'WMIC DiskDrive Where InterfaceType^="USB" Get Name^,PNPDeviceID^,Model /Value /format:csv 2^>nul'
) do (
Set AtLeastOneDevice=true
Call :Get_USB_SN "%%k" Device_SN
Call :GetPartition "%%j" Drives
Echo Model: %%i
Echo %%j
Echo Disk^(s^): !Drives!
Echo Device S/N: "!Device_SN!"
Echo.
)
if not defined AtLeastOneDevice Echo Съемных USB накопителей не обнаружено.
Echo.
Echo Перечень жестких дисков:
Echo.
For /F "Skip=2 Tokens=2-4 delims=," %%i In (
'WMIC DiskDrive Where "InterfaceType^!^='USB'" Get Name^,PNPDeviceID^,Model /Value /format:csv'
) do (
Call :GetPartition "%%j" Drives
Call :Get_HDD_SN "%%j" Device_SN
Echo Model: %%i
Echo %%j
Echo Disk^(s^): !Drives!
Echo Device S/N: "!Device_SN!"
Echo "!Device_SN!">>%~dp0file.txt
Echo.
)
pause>nul
Goto :eof
::Парсим часть с серийным номером устройства
:Get_USB_SN %1-in.PNPDeviceID %2-out.Device_S/N
Set "%~2="
Set "PNP=%~1"
Set "PNP=%PNP:\=" "%"
Set "PNP=%PNP:;=" "%"
Set "PNP=%PNP:&=" "%"
Set _Prev=
For %%i in ("%PNP%") do (
if "!_Prev:~0,4!"=="REV_" (Set "%~2=%%~i"& Exit /B)
Set "_Prev=%%~i"
)
Exit /B
:Get_HDD_SN %1.in-PhysicalDrive_Name %2-out.Device_S/N
Set "tag=%~1"
Set "tag=%tag:\=\\%"
For /F "UseBackQ skip=2 tokens=2 delims=," %%i In (
`wmic path Win32_PhysicalMedia where "tag='%tag%'" Get SerialNumber /format:csv`
) do call set "_serial=%%i"
::Выше используется Call, чтобы удалить служебный символ 0x0D из переменной
set "_serial=%_serial: =%"
::Проверяем признак 16-ричного кода (ответ длинной 40 символов)
if "%_serial:~39,1%" neq "" Call :Hex_To_String "%_serial%" "_serial"
set "%~2=%_serial%"
Exit /B
:Hex_To_String %1-in.Reversed.Hex.Number %2-out.String
SetLocal& set "x16=%~1"
set n=45
for %%A in (- . / 0 1 2 3 4 5 6 7 8 9) do set s.!n!=%%A& set /a n+=1
set n=65
for %%A in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do set s.!n!=%%A& set /a n+=1
set n=97
for %%A in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do set s.!n!=%%A& set /a n+=1
set xs=
for /L %%C in (0,4,8184) do (
if "!x16:~%%C,1!"=="" goto _ex_Hex
set /A cplus=%%C+2
call set /A x10=0x%%x16:~!cplus!,2%%
call set xs=!xs!%%s.!x10!%%
set /A x10=0x!x16:~%%C,2!
call set xs=!xs!%%s.!x10!%%
)
:_ex_Hex
EndLocal& set "%~2=%xs%"& Exit /B
::Конвертация PhysicalDrive Name -> Partition Names -> Drive Names
:GetPartition %1.in-PhysicalDrive_Name %2-out.Drive_Names
Set "%~2="
For /F "skip=2 delims==, tokens=3,6-7" %%i In (
'WMIC path Win32_DiskDriveToDiskPartition get /format:csv'
) do (
if %%i=="%~1" (
For /F "skip=2 delims==, tokens=3-4,7" %%I In (
'WMIC path Win32_LogicalDiskToPartition get Antecedent^,Dependent /format:csv'
) do (
if "%%I,%%J"=="%%j,%%k" Set "%~2=!%~2! %%K"
)))
Exit /B
2. Определяем версию, разрядность и сборку операционной системы.
@echo off
SetLocal EnableExtensions
Call :GetSystemVersion "OSVer" "Core" "Build"
Echo Your operating system: %OSVer% %Core% %Build%
pause
goto :eof
:GetSystemVersion
:: Определить версию ОС
:: %1-исх.Переменная для хранения названия ОС
:: %2-исх.Переменная для хранения разрядности ОС
:: %3-исх.Переменная для хранения версии сборки ОС
If /i "%PROCESSOR_ARCHITECTURE%"=="x86" (set %~2=x32) else (set %~2=x64)
For /F "delims=" %%a in ('ver') do set _ver=%%a
Set _ver="%_ver: =" "%"
For %%a in (%_ver%) do set _ver=%%~a
for /F "delims=]" %%a in ("%_ver%") do set %~3=%%a
set _ver=%_ver:~0,3%
SET %~1=Unknown
if "%_ver%"=="5.0" SET %~1=Windows 2000
if "%_ver%"=="5.1" SET %~1=Windows XP
if "%_ver%"=="5.2" SET %~1=Windows 2003
if "%_ver%"=="6.0" (
Reg.exe query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName"|>nul Find /i "Vista"&&(
SET %~1=Windows Vista) || (SET %~1=Windows 2008)
)
if "%_ver%"=="6.1" SET %~1=Windows 7
if "%_ver%"=="6.2" SET %~1=Windows 8
if "%_ver%"=="6.3" SET %~1=Windows 8.1
set _ver=
Exit /B
3. Удаляем ярлыки с рабочего стола.
@echo off
chcp 1251
setlocal
set files=Русс.lnk 1111*.lnk *z.lnk
%homedrive%
if exist "%homedrive%%homepath%\desktop" (set homedesk=desktop) else (set homedesk=Рабочий стол)
if exist "%public%" (set comdesk=%public%\%homedesk%) else (set comdesk=%allusersprofile%\%homedesk%)
chdir "%homedrive%%homepath%\%homedesk%"
for %%a in (%files%) do (echo del /q "%%a"&echo del /q "%comdesk%\%%a" >nul)
endlocal
chcp 866
Российская социальная сеть «ВКонтакте» позволяет своим пользователям не только размещать записи на любые темы и…
Когда сообщение вернуть назад невозможно? Вне зависимости от версии программы Outlook (аутлук) существует возможность отзыва…
Запись экрана – это неотъемлемый инструмент для тех компьютерных пользователей, которые занимаются записью прохождения разных…
На что следует обратить внимание в том случае, если вы хотите скачать с YouTube MP3…
Документы PDF часто содержат данные в виде таблиц со строками и столбцами. Чтобы использовать эти…
Что вы собираетесь делать, если вам нужно взять информацию из PDF и поместить ее в…
This website uses cookies.