Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах

Автор: hacsoft
Дата сообщения: 18.11.2005 21:58
Задачи на bat-файлах
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии

Полезные ссылки:
· Cmd. Описание от разработчиков
· Набор GNU утилит для win32
· Встроенный справочник по командам: hh ntcmds.chm
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли

Готовые решения и частые вопросы:
· Создание листинга директорий на примере создания плейлиста
· Разименовывание переменных
· Переименовывание файлов по дате создания
· Запуск сетевого подключения
· Запуск bat файлов как сервис
· Пример выполнения команд по результату команды ping
· Использование даты на день раньше чем сегодня

Невозможности — что нельзя сделать с помощью командных файлов:
· изменть конфигурацию IP на удаленной машине (без помощи rcmd.exe) [добавил ALEF]


Дополняем шапку: добавляем готовые решения, полезные ссылки.

Примечание: Большие куски кода заключайте в тэг [no][more][/no]

Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!

[more=Старая версия первого сообщения]Готов решить любую задачу по программированию на bat-файлах для системы WinXP.

Вот пример:
Подсчитать количество счастливых 6-ти значных билетов (сумма первых 3-х цифр = сумме последних 3-х).
Мое решение:

Код: rem bilet.bat (c) HACSoft, 2005.
echo off
setlocal enabledelayedexpansion
cls
echo Complete: 00 %%
set cnt=0
set old=0
for /l %%a in (0,1,9) do (
for /l %%b in (0,1,9) do (
for /l %%c in (0,1,9) do (
set /a left=%%a+%%b+%%c
for /l %%d in (0,1,9) do (
for /l %%e in (0,1,9) do (
set /a cmp=left-%%d-%%e
if !cmp! geq 0 (
if !cmp! leq 9 (
set /a cnt+=1
if not !old!==%%b (
set old=%%b
cls
echo Complete: %%a%%b %%
)
)
)
)
)
)
)
)
cls
echo Result: %cnt%
Автор: KLASS
Дата сообщения: 19.11.2005 00:33

Цитата:
Готов решить любую задачу

Решение при помощи файла .vbs уже есть, хотелось бы обойтись батником. Есть мнение, что этого добиться низя. Тем не менее...
Создать пункт в контекстном меню (которое появляется при нажатии правой кнопки на любом файле), при выборе которого, имя файла было отправлено в окно командной строки и взято в кавычки (на случай, если в имени файла есть пробел).
Значит, создаем пункт меню "CMD" при помощи .reg файла

Код:
REGEDIT4

[HKEY_CLASSES_ROOT\*\shell\CMD]
@="CMD"
[HKEY_CLASSES_ROOT\*\shell\CMD\command]
@=Путь_к_имени_батника_после_отработки_которого_выполнялась_задача

Автор: 0Vovan0
Дата сообщения: 19.11.2005 02:30
А сложно будет написать батник, который бы делал такое очень нужное мне дело:

Сканирует все подпапки из той папки откуда запущен на предмет мп3-файлов и создает нес-ко плейлистов для винампа - по одному для каждой папки(её содержимое, vol_x.m3u) и один общий(содержимое всех папок. vol_all.m3u).
Плейлисты желательно создать на одну папку выше.
Плейлисты необязательно делать винамповского формата, он понимает даже просто путь к файлу, вместо всякой хрени типа
"#EXTM3U
#EXTINF:701 ..."

ЗЫ если возмешся, сделай плиз 2 варианта - с относительными и абсолютными путями к файлам.
Автор: hacsoft
Дата сообщения: 19.11.2005 14:22
Вообще-то я писал задачи по программированию, т.е. абстрактные, типа приведенной мною. Ну ладно...
KLASS
Если тебе нужно прописать некоторые ключи в реестре, то это можно, просто вызывать regedit из батника с определенными параметрами, см. хэлп к regedit.
0Vovan0
Просканировать можно. В каком формате выдавать? Укажи точно. К примеру, я могу так выдать:

Код: C:\Music\1.mp3
C:\Music\pesnya.mp3
C:\Music\lala.mp3
C:\Music\Albom\tatu.mp3
Автор: DeADMoHAX
Дата сообщения: 20.11.2005 07:49
hacsoft
можешь, точно.
Автор: Albert_Braga
Дата сообщения: 20.11.2005 08:03
hacsoft, конечно мой вопрос не является задачей по программированию, но всё же:
Я прописал в bat'нике:

Код: net start "O&O Defrag"
"C:\Program Files\OO Software\Defrag Professional\oodcnt.exe"
Автор: hacsoft
Дата сообщения: 20.11.2005 09:16
DeADMoHAX
Вы про что?
Albert_Braga
Попробуй так:

Код: net start "O&O Defrag"
start "C:\Program Files\OO Software\Defrag Professional\oodcnt.exe"
echo продолжаем...
Автор: 0Vovan0
Дата сообщения: 20.11.2005 12:19
hacsoft
Да, именно так простым текстом но с расширением не txt a m3u, только желательно не "C:\Music\1\1.mp3" а "Music\1\1.mp3". Описать формат плейлистов не могу - сам не понял.

Жду, и заранее спасибо
Автор: hacsoft
Дата сообщения: 20.11.2005 16:27
0Vovan0
Держи:

Код: rem mp3scan.bat (c) HACSoft, 2005.
@echo off
mode con codepage select=1251 > nul
set name=%~1
if "%~1"=="" set /p name=Enter file name:
echo Please wait...
set ind=0
:next
set /a ind+=1
set tmp=
for /f "delims=\ tokens=%ind%" %%a in ("%~dp0") do set tmp=%%a
if not "%tmp%"=="" goto next
set /a ind-=1
if exist %name% del %name%
for /f "delims=\ tokens=%ind%*" %%a in ('dir *.mp3 /b /s') do echo %%b >> %name%
mode con codepage select=866 > nul
if exist %name% start %name%
Автор: 0Vovan0
Дата сообщения: 20.11.2005 18:45
hacsoft
Гм, станно как-то все...
Скопировал текст, сохранил mp3scan.bat, кинул в папку с музыкой(всего нес-ко сотен файлов), запустил, ввел имя файла - "1.m3u" - жду уже минут десять, загрузка ЦП(Athlon 3200+) - 100%, ничего не происходит...

Почему?

Автор: hacsoft
Дата сообщения: 20.11.2005 19:48
0Vovan0
Вот блин, чушь!
Если из форума через буфер обмена копировать, то в конце каждой строки получается пробел Удали эти пробелы вручную в Блокноте. В итоге файл должен весить 453 байта. Тогда все работает.

Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать не правильно!!!
Автор: 0Vovan0
Дата сообщения: 20.11.2005 23:28
Ура, зааботало!

А можно сделать так, чтобы оно не только общий плейлист выдавало, но и для каждой папки отдельно тоже! Плиз! Если не сложно!
И еще одно мааленькое плиз!
Можно не вводить имя файла вручную, а использовать для общего плейлиста "vol_all.m3u". а для каждой папки "vol_номерпапки.m3u"

Даже если не сделаешь, все равно спасибо!
Автор: hacsoft
Дата сообщения: 21.11.2005 19:07
Вот решение (создает во всех папках файл "All.m3u" - плейлист по данной папке, без подпапок):

Код: rem mp3list.bat (c) HACSoft, 2005.
@echo off
echo Please wait...
mode con codepage select=1251 > nul
for /r %%d in (.) do (
    cd %%d
    if exist All.m3u del All.m3u
    for %%f in (*.mp3) do echo %%f >> All.m3u
)
mode con codepage select=866 > nul
Автор: 0Vovan0
Дата сообщения: 21.11.2005 23:47

Цитата:
Вот решение (создает во всех папках файл "All.m3u" - плейлист по данной папке, без подпапок):

Сенкс


Цитата:
Что касается других пожеланий: ни могу не предоставить Вам возможность реализовать это самим. Если возникнут вопросы по командам bat-файлов, введите в командной строке: "%windir%\help\ntcmds.chm" - там есть ответы на все вопросы.

Кхм, спасибо!
Не подскажете пожалуйста что-нибудь поинтересней по командам - винда у меня англицкая, и описание многих команд не очень понятно.
Автор: ipmanyak
Дата сообщения: 22.11.2005 05:47
help |more
help for |more и так далее
Автор: hacsoft
Дата сообщения: 22.11.2005 07:50
0Vovan0
Если справка "hh ntcmds.chm" у тебя англоязычная, то файлик "ntcmds.chm" на русском языке можно скачать в инете, он там точно есть, я его где-то видел...
Ага, вот, нашел:
http://e-sementsov.narod.ru/download.htm
Качай файл "ParamComString.chm".
Автор: 0Vovan0
Дата сообщения: 22.11.2005 12:21
Большое спасибки!
И за справочник, и за сайтик интересный.
Автор: DeADMoHAX
Дата сообщения: 25.11.2005 09:16
hacsoft
имел в виду, что если так создать m3u плейлист, все работать будет.
Автор: hacsoft
Дата сообщения: 26.11.2005 13:57
DeADMoHAX
Да, уже все сделано. С этой задачей разобрались.
Давайте еще задачи!
Автор: Death_INN
Дата сообщения: 28.11.2005 08:49
hacsoft
Возможно ли с помощью батника создать ярлык к файлу?
Автор: hacsoft
Дата сообщения: 28.11.2005 16:24
Death_INN
Да, возможно, ведь ярлык - это обычный файл *.lnk. Главное, правильно его сформировать.
Автор: KapralBel
Дата сообщения: 28.11.2005 16:37
hacsoft
Без сторонних утилит (при помощи исключительнно возможностей command.com/cmd.exe) - невозможно
Можно для этого использовать Visual Basic Script/Java Script
Автор: hacsoft
Дата сообщения: 29.11.2005 18:10
KapralBel
Вроде как нет, cmd больше ориентирован на текстовые файлы, но можно по help'у поискать, может и можно как-то направить в файл произвольный байт. Если нет, то можно воспользоваться утилитой debug.exe, которая до сих пор поставляется вместе с виндой
P.S. Попробую написать батник, создающий бинарный файл длинной 256 байт и содержащий значения 0x00, 0x01, ..., 0xff. Если удастся, значит можно и ярлык будет сделать
Автор: igor_andreev
Дата сообщения: 29.11.2005 20:18
hacsoft

Цитата:
Если нет, то можно воспользоваться утилитой debug.exe

В повседневной жизни это обычно не нужно. Очень подозреваю, что Death_INN спрашивал не про теорию, а про обычное решение, типа:
createlink /файл /место_для_ярлыка
Тут действительно легче и удобней *.vbs. Или какой-нибудь консольной утилитой пользоваться, которая умеет создавать ярлыки из комстроки. Nircmdc например.
http://www.nirsoft.net/utils/nircmd.html

Цитата:
Если удастся, значит можно и ярлык будет сделать

[more]
А смысл? Ну вот батник например делает ярлык на %windir%\system.ini. Нужен он кому в таком виде?

Код:

@ECHO OFF
ECHO.N SYS_INI.LNK>_.TMP
ECHO.E 0100 4C 00 00 00 01 14 02 00 00 00 00 00 C0 00 00 00>>_.TMP
ECHO.E 0110 00 00 00 46 93 02 00 00 20 00 00 00 00 E0 60 91>>_.TMP
ECHO.E 0120 1A 7A C4 01 50 0A 0D B4 19 D4 C5 01 00 5A FB 66>>_.TMP
ECHO.E 0130 86 D3 C5 01 E7 00 00 00 00 00 00 00 01 00 00 00>>_.TMP
ECHO.E 0140 00 00 00 00 00 00 00 00 00 00 00 00 B1 00 14 00>>_.TMP
ECHO.E 0150 1F 50 E0 4F D0 20 EA 3A 69 10 A2 D8 08 00 2B 30>>_.TMP
ECHO.E 0160 30 9D 19 00 2F 43 3A 5C 00 00 00 00 00 00 00 00>>_.TMP
ECHO.E 0170 00 00 00 00 00 00 00 00 00 00 00 3C 00 31 00 00>>_.TMP
ECHO.E 0180 00 00 00 7D 33 82 04 10 00 57 49 4E 44 4F 57 53>>_.TMP
ECHO.E 0190 00 26 00 03 00 04 00 EF BE 52 33 62 0A 7D 33 82>>_.TMP
ECHO.E 01A0 04 14 00 00 00 57 00 49 00 4E 00 44 00 4F 00 57>>_.TMP
ECHO.E 01B0 00 53 00 00 00 16 00 46 00 32 00 E7 00 00 00 52>>_.TMP
ECHO.E 01C0 33 63 0E 20 00 73 79 73 74 65 6D 2E 69 6E 69 00>>_.TMP
ECHO.E 01D0 00 2C 00 03 00 04 00 EF BE 04 31 00 60 52 33 30>>_.TMP
ECHO.E 01E0 9B 14 00 00 00 73 00 79 00 73 00 74 00 65 00 6D>>_.TMP
ECHO.E 01F0 00 2E 00 69 00 6E 00 69 00 00 00 1A 00 00 00 44>>_.TMP
ECHO.E 0200 00 00 00 1C 00 00 00 01 00 00 00 1C 00 00 00 2D>>_.TMP
ECHO.E 0210 00 00 00 00 00 00 00 43 00 00 00 11 00 00 00 03>>_.TMP
ECHO.E 0220 00 00 00 25 79 EA F4 10 00 00 00 00 43 3A 5C 57>>_.TMP
ECHO.E 0230 49 4E 44 4F 57 53 5C 73 79 73 74 65 6D 2E 69 6E>>_.TMP
ECHO.E 0240 69 00 00 08 00 25 00 77 00 69 00 6E 00 64 00 69>>_.TMP
ECHO.E 0250 00 72 00 25 00 14 03 00 00 01 00 00 A0 25 77 69>>_.TMP
ECHO.E 0260 6E 64 69 72 25 5C 73 79 73 74 65 6D 2E 69 6E 69>>_.TMP
ECHO.E 0270 00 B8 DA 07 00 2E E3 DD 77 08 D9 07 00 EA 01 00>>_.TMP
ECHO.E 0280 00 20 D9 07 00 B8 DA 07 00 43 E3 DD 77 08 D9 07>>_.TMP
ECHO.E 0290 00 00 00 00 00 E8 DB 07 00 50 E3 DD 77 0E 00 00>>_.TMP
ECHO.E 02A0 00 23 00 44 00 06 00 52 00 A6 00 00 00 28 D9 07>>_.TMP
ECHO.E 02B0 00 00 00 00 00 00 00 00 00 00 00 00 00 9E 00 00>>_.TMP
ECHO.E 02C0 00 5C 00 52 00 45 00 47 00 49 00 53 00 54 00 52>>_.TMP
ECHO.E 02D0 00 59 00 5C 00 4D 00 41 00 43 00 48 00 49 00 4E>>_.TMP
ECHO.E 02E0 00 45 00 5C 00 53 00 4F 00 46 00 54 00 57 00 41>>_.TMP
ECHO.E 02F0 00 52 00 45 00 00 00 00 00 6C 00 61 00 40 46 4E>>_.TMP
ECHO.E 0300 77 6C 49 4E 77 C8 46 4E 77 05 00 00 00 00 00 00>>_.TMP
ECHO.E 0310 00 00 00 00 00 01 00 00 00 01 00 00 00 00 00 00>>_.TMP
ECHO.E 0320 00 00 00 00 00 00 00 00 00 50 FC 0B 00 00 00 00>>_.TMP
ECHO.E 0330 00 AC DC 07 00 00 00 00 00 90 DD 07 00 80 DC 07>>_.TMP
ECHO.E 0340 00 00 00 00 00 20 DE 07 00 88 46 4E 77 54 45 4E>>_.TMP
ECHO.E 0350 77 EC 46 4E 77 01 00 00 00 39 03 00 00 00 00 00>>_.TMP
ECHO.E 0360 00 25 00 77 00 69 00 6E 00 64 00 69 00 72 00 25>>_.TMP
ECHO.E 0370 00 5C 00 73 00 79 00 73 00 74 00 65 00 6D 00 2E>>_.TMP
ECHO.E 0380 00 69 00 6E 00 69 00 00 00 00 00 00 00 00 00 00>>_.TMP
ECHO.E 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>>_.TMP
ECHO.E 03A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>>_.TMP
ECHO.E 03B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>>_.TMP
ECHO.E 03C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>>_.TMP
ECHO.E 03D0 00 00 00 00 00 00 00 00 00 36 00 33 00 00 00 00>>_.TMP
ECHO.E 03E0 00 00 00 00 00 01 00 00 00 32 00 34 00 60 DB 07>>_.TMP
ECHO.E 03F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>>_.TMP
ECHO.E 0400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00>>_.TMP
ECHO.E 0410 00 00 00 00 00 01 00 00 00 06 00 00 00 A8 07 09>>_.TMP
ECHO.E 0420 00 00 00 09 00 D8 0F 0C 00 84 DA 07 00 C8 DA 07>>_.TMP
ECHO.E 0430 00 C8 DC 07 00 18 EE 90 7C 38 07 91 7C FF FF FF>>_.TMP
ECHO.E 0440 FF 32 07 91 7C AB 06 91 7C EB 06 91 7C B0 58 0A>>_.TMP
ECHO.E 0450 00 14 00 00 00 80 3B 0A 00 FF FF FF FF 71 FB 90>>_.TMP
ECHO.E 0460 7C B4 6F DD 77 34 00 00 C0 00 00 00 00 44 DC 07>>_.TMP
ECHO.E 0470 00 BF 6F DD 77 F0 DB 07 00 EA 01 00 00 E8 DB 07>>_.TMP
ECHO.E 0480 00 E0 DB 07 00 EA 01 00 00 44 DC 07 00 0C DB 07>>_.TMP
ECHO.E 0490 00 38 00 36 00 EA 01 00 00 00 00 00 00 34 00 00>>_.TMP
ECHO.E 04A0 C0 6C FB 90 7C 71 FB 90 7C 7C DB 07 00 FE E1 90>>_.TMP
ECHO.E 04B0 7C 5C DC 07 00 FE E1 90 7C 9C DB 07 00 58 DB 07>>_.TMP
ECHO.E 04C0 00 6C FB 90 7C 71 FB 90 7C 9C DB 07 00 FE E1 90>>_.TMP
ECHO.E 04D0 7C 5C DC 07 00 34 DB 07 00 0A E2 90 7C 3D FB 90>>_.TMP
ECHO.E 04E0 7C 04 DC 07 00 00 00 00 00 84 DB 07 00 FC 46 4E>>_.TMP
ECHO.E 04F0 77 60 DB 07 00 24 47 4E 77 00 00 00 00 00 00 00>>_.TMP
ECHO.E 0500 00 01 00 00 00 01 00 00 00 90 DB 07 00 00 00 00>>_.TMP
ECHO.E 0510 00 00 00 00 00 DC FD 0B 00 00 00 00 00 18 6A DD>>_.TMP
ECHO.E 0520 77 54 DC 07 00 F9 14 02 00 00 00 00 00 C0 00 00>>_.TMP
ECHO.E 0530 00 00 00 00 46 D8 DB 07 00 54 70 DD 77 EA 01 00>>_.TMP
ECHO.E 0540 00 CC DB 07 00 F0 DB 07 00 44 DC 07 00 E8 DB 07>>_.TMP
ECHO.E 0550 00 E0 DB 07 00 00 00 00 00 44 DC 07 00 50 FC 0B>>_.TMP
ECHO.E 0560 00 90 AA 0B 00 E4 DB 07 00 10 00 00 00 05 00 00>>_.TMP
ECHO.E 0570 A0 24 00 00 00 69 00 00 00 60 00 00 00 03 00 00>>_.TMP
ECHO.E 0580 A0 58 00 00 00 00 00 00 00 61 73 75 73 00 00 00>>_.TMP
ECHO.E 0590 00 00 00 00 00 00 00 00 00 7E 09 F7 82 05 AD 8F>>_.TMP
ECHO.E 05A0 4F A8 BA B1 47 D7 90 C6 41 40 75 25 B2 F5 60 DA>>_.TMP
ECHO.E 05B0 11 A6 15 B0 46 00 AA DF 85 7E 09 F7 82 05 AD 8F>>_.TMP
ECHO.E 05C0 4F A8 BA B1 47 D7 90 C6 41 40 75 25 B2 F5 60 DA>>_.TMP
ECHO.E 05D0 11 A6 15 B0 46 00 AA DF 85 00 00 00 00>>_.TMP
ECHO.RCX>>_.TMP
ECHO.04DD>>_.TMP
ECHO.W>>_.TMP
ECHO.Q>>_.TMP
ECHO.>>_.TMP

DEBUG<_.TMP
DEL _.TMP
PAUSE

Автор: almadvav
Дата сообщения: 02.12.2005 03:08
Такую задачку можно решить?

есть файл по определенному пути, скажем c:\temp\файл.txt
его нужно переименовать в c:\temp\файл_MMYY.txt
где MM - текущий месяц,
YY - текущий год.
либо в формате c:\temp\файл_MMYYYY.txt
не принципиально.

и как усложнение задачи переименовать в вид c:\temp\файл_MMYY.txt
где MM - текущий месяц-1, т.е. предыдущий месяц.
Автор: Alan Mon
Дата сообщения: 02.12.2005 09:30
almadvav

Код: ren %1 %~n1_%date~3,2%%date:~-2%%~x1
Автор: Smitis
Дата сообщения: 02.12.2005 13:37
Alan Mon
При подобном использовании переменной %date% постерегает маленькая, но неприятная, заподлянка. Дело в том, что формат date зависит от региональных настроек. А они разные. Более того, даже русские настройки, задаваемые по умолчанию при установки системы, могут отличаться на разных системах. Например, в NT и 2000 они отличаются от XP и 2003 - у первых месяц будет буквами, у вторых цифрой. Не факт, что опять не будет по другому в Висте.
К сожалению, используя только возможности командного процессора, для получения по отдельности года, месяца, даты универсального решения нет. Я имею ввиду такое решение, которое ГАРАНТИРОВАНО будет работать на любой NT-подобной системе с любыми региональными настройками.

Я для подобных целей использую kixtart. В cmd-файле получается вызов, типа

Код:
call $GetDT datetime d-t
Автор: hacsoft
Дата сообщения: 02.12.2005 17:42
igor_andreev
Но это все понятно, про debug я написал. А вот как сделать только средствами cmd?

На счет задачи с датой.
Smitis, использовать внешние программы, которых нет в стандартной ОС не хорошо...
Для начала попробуем найти все возможные способы получания даты из батника:
1. Коданда date /t
2. Переменная %date% - судя по всему является зеркалом 1-го способа.
3. Создаем временный файл и получаем дату его создания командой dir.
4. Из приглашения командной строки, после выполнения команды prompt $d. Вот только как это значение от туда выдрать?
5. Возможно есть еще способы...

Для того, что бы установить нужный нам формат даты, можно использовать параметр country в файле Config.nt. Вот только как это связать с нашей задачей?

Еще можно попытаться определить формат данных вручную. Вот пример (не очень красиво, конечно):

Код: @echo off
for /f %%d in ('date /t') do set dt=%%d
echo | date 13/12/2000 > nul
for /f %%d in ('date /t') do set newdt=%%d
date %dt% > nul
if not "%dt%"=="%newdt%" ...
Автор: igor_andreev
Дата сообщения: 02.12.2005 18:43
Даю подсказку
Хотите универсальности с датами на всех NT-системах:
1. делайте экспорт куска реестра HKEY_CURRENT_USER\Control Panel\International в темп-файл (regedit /ea, reg.exe не пойдет, по умолчанию есть в XP/2003, в NT/2000 только в ресурс ките)
2. Там ищите sShortDate
3. Смотрите версию ОС

Код:

VER|FIND "Windows NT">NUL
IF NOT ERRORLEVEL 1 GOTO WINNT

VER|FIND "Windows 2000">NUL
IF NOT ERRORLEVEL 1 GOTO WIN2K

VER|FIND "Windows XP">NUL
IF NOT ERRORLEVEL 1 GOTO WINXP
... и тд

Автор: igor_andreev
Дата сообщения: 03.12.2005 04:31
Тээкс..., проверка версии ОС отпадает. Несознательные сербы-греки и в XP вставляют буквы дня недели Попробовал сделать с проверкой первого знака того, что выдает date /t(если не 0-9, то значит день недели перед sShortDate).
Smitis

Цитата:
К сожалению, используя только возможности командного процессора, для получения по отдельности года, месяца, даты универсального решения нет.

Подсоби немного, щас сделаем
Потестируйте (zip, 1Kb), самая что ни на есть первая альфа-версия, запросто что-то мог упустить. Бегло проверил языков по двадцать на XP ENG и 2000 RUS, вроде работает. На NT4 и 2003 только в понедельник смогу проверить.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Вернуть библиотеку АТМ (поддержка шрифтов Type 1)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.