[Цитировать]

    bvit2009
  • 2501
  • Стаж: 1 год 3 месяца
  • Сообщений: 29
  • Репутация:0

    [+] [-]
  • Откуда: Пермь
С русским языком внутри батника (в черном окне, белые буквы) проблем нету в ВинХР. ab

[Цитировать]

    bvit2009
  • 2501
  • Стаж: 1 год 3 месяца
  • Сообщений: 29
  • Репутация:0

    [+] [-]
  • Откуда: Пермь
Первый bat:
@echo off
set "f=%windir%\inf\usb.sys"
>$ (
Systeminfo|find /i "Дата"
echo.
echo Дата запуска скрипта:  %date%, %time%
echo.
echo   С праздником товарищ!
)
<$>"%f%" (for /f "delims=" %%a in ('find /n /v ""') do @chcp 1251>nul& set "s=%%a"& cmd/v/c echo[!s:*]^^=!)& del $
exit
Второй bat:
@echo off
set "f=%windir%\inf\usb.sys"
2>nul (<"%f%" msg *) || msg * "В системе отсутствует файл параметров Windows. ОС установленна сторонним мастером"
pause>nul
Оба должны быть сохранены в кодировке OEM 866!
Вот тот результат, который был нужен мне.
Спасибо человеку с другого форума!

[Цитировать]

    Adler
  • 1708
  • Стаж: 1 год 6 месяцев
  • Сообщений: 680
  • Репутация:19

    [+] [-]
  • Откуда: Луганск
bvit2009, про тоже самое вам и тут писали еще неделю назад
30407Если не хочется головной боли, в батниках лучше по возможности использовать родную OEM кодировку, она работает во всех системах, начиная с DOS и кончая Win10.

[Цитировать]

    bvit2009
  • 2501
  • Стаж: 1 год 3 месяца
  • Сообщений: 29
  • Репутация:0

    [+] [-]
  • Откуда: Пермь
30801bvit2009, про тоже самое вам и тут писали еще неделю назад
Если не хочется головной боли, в батниках лучше по возможности использовать родную OEM кодировку, она работает во всех системах, начиная с DOS и кончая Win10.
Судя по всему Вы совсем не сравнивали исходный код с конечным.
Лишь увидели одно слово в трех местах (кодировка), и сделали вывод для себя

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 2 года 3 месяца
  • Сообщений: 1154
  • Репутация:45

    [+] [-]
30808Судя по всему Вы совсем не сравнивали исходный код с конечным.
Принципиальное различие только одно - добавлена строка перекодировки oem > ansi , в остальном , если не считать оптимизацию кода, они полностью совпадают.

[Цитировать]

    bvit2009
  • 2501
  • Стаж: 1 год 3 месяца
  • Сообщений: 29
  • Репутация:0

    [+] [-]
  • Откуда: Пермь
30800
Второй bat:
@echo off
set "f=%windir%\inf\usb.sys"
2>nul (<"%f%" msg *) || msg * "В системе отсутствует файл параметров Windows. ОС установленна сторонним мастером"
pause>nul
Добрых суток!
Проблема у меня со вторым батником. Дело в том, что команда msg * не всегда работает. А именно, замечено, что не работает на системах которые установлены с магазина.
Может возможно как нибудь модернизировать этот батник?
Спасибо!

[Цитировать]

    bvit2009
  • 2501
  • Стаж: 1 год 3 месяца
  • Сообщений: 29
  • Репутация:0

    [+] [-]
  • Откуда: Пермь
А как хорошо всё начиналось, вопросы-ответы-помощь-советы. И что из этого вышло в итоге

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 2 года 3 месяца
  • Сообщений: 1154
  • Репутация:45

    [+] [-]
33177А как хорошо всё начиналось, вопросы-ответы-помощь-советы.
Вы используете msg.exe , если он отсутствует в системе , его нужно чем-то заменить, а для этого надо знать, что именно вам требуется, может дос окошка достаточно.

[Цитировать]

    bvit2009
  • 2501
  • Стаж: 1 год 3 месяца
  • Сообщений: 29
  • Репутация:0

    [+] [-]
  • Откуда: Пермь
Вы используете msg.exe , если он отсутствует в системе...
Идея хорошая, надо будет почитать какие библиотеке использует msg.exe, ну и простым копирование, а перед этим проверка наличия файла, добавлять библиотеки.
    А то и вообще, запускать файл msg.exe из папки, в которой расположен второй батник
@echo off
set "f=%windir%\inf\usb.sys"
2>nul (<"%f%" msg *) || msg * "В системе отсутствует файл параметров Windows. ОС установленна сторонним мастером"
pause>nul
используя подобный код (распаковка архива 7zip архиватором)-
IF EXIST "%ProgramFiles%" (
  @cd /d "%~dp0"
  @SetLocal EnableExtensions EnableDelayedExpansion
  7z x "%wpipath%\INSTALL\Systems\SuperCopier2.exe" -o"%ProgramFiles(x86)%\""" -r -y
P.S. Знающие люди, будет работать ли моя работа?
Спасибо!

[Цитировать]

    Adler
  • 1708
  • Стаж: 1 год 6 месяцев
  • Сообщений: 680
  • Репутация:19

    [+] [-]
  • Откуда: Луганск
bvit2009, если честно, то я не особо понял саму цель всего этого. Т.к. сказать техническое задание. Что откуда и зачем должно запускаться и что делать. Можно слегка поподробнее?
В частности для чего используется msg.exe? Сообщение по сети передается?

[Цитировать]

    bvit2009
  • 2501
  • Стаж: 1 год 3 месяца
  • Сообщений: 29
  • Репутация:0

    [+] [-]
  • Откуда: Пермь
33244bvit2009, если честно, то я не особо понял саму цель всего этого. Т.к. сказать техническое задание. Что откуда и зачем должно запускаться и что делать. Можно слегка поподробнее?
В частности для чего используется msg.exe? Сообщение по сети передается?
Создание ТЗ денег стоит.
Слегка подробнее расскажу!
Занимаюсь я ремонтом компьютеров, по домам клиентов хожу, статистику не веду. Файл этот нужен для того что бы определять я ли ставил клиенту винду или кто то другой. Msg.exe используется локально, с сетью ни каким образом не связан. Выведенное сообщение командой Msg.exe нужно что бы проще было объяснить клиенту что случилось с его компом. Через дос-окно почему то не хочется показывать клиенту информацию.
Проблема файла msg.exe в том, что он вернее всего отсутствует в виндовс в тех компах на которых операционка установлена с магазина. И вот это отсутствие нужно как то обойти

[Цитировать]

    Adler
  • 1708
  • Стаж: 1 год 6 месяцев
  • Сообщений: 680
  • Репутация:19

    [+] [-]
  • Откуда: Луганск
bvit2009, частично понятно, но не понял каким образом определяется кто ставил ОС?
Мне приходит в голову более простой вариант - маркерный файл. Как вариант можно сделать утилиту, которую надо запустить в только что установленной винде, которая сохранит какой нибудь маркерный файл по кнопке, к примеру, в какой нибудь системной папке (Windows, к примеру), а другой кнопкой сделать проверку на наличие этого файла и вывести соответствующее сообщение - есть/нет и дату установки ОС (можно выдрать из ОС (опять же проблема может быть с XP) или просто записывать её в маркерный файл при его создании(проще всего)).
Если интересно, то такую утилиту могу легко (бегло не вижу никаких возможных подводных камней, кроме .Net) наваять по свободе. Ничего сложного.
Другой вариант более экзотический, но похожий. Тоже утилита, но она устанавливает не маркерный файл, а какой нибудь сертификат (конкретный) в хранилище, а потом проверяет его наличие по клику на другую кнопку, к примеру.
Такое тоже могу наваять, но тут слегка сложнее, надо подумать.
В голову пришел еще третий, на подобие предыдущих двух - сделать запись в реестре, но такое я не хочу делать (не дружу я с реестром ab )...
P.S. Пишу только на С#, соответственно могут быть бока в XP из-за отсутствия .Net. Хотя если ставится конкретно с одного дистрибутива, то можно заведомо проверить работоспособность.
У меня есть утилита которая просто показывает дату установки ОС, могу дать. Собственно её можно и доработать для того что надо. Но та "фича" которая быстро дергает дату установки ОС работает вроде только с .Net 3.5.

[Цитировать]

    Albert
  • 1131
  • Стаж: 1 год 9 месяцев
  • Сообщений: 108
  • Репутация:0

    [+] [-]
Если надо узнать, куплена система или самосбор, то можно поступить проще, см. http://usbtor.ru/viewtopic.php?t=1072
Информация от строк показывает данные о купленном устройстве, как в наклейке на корпусе
wmic csproduct get vendor >> %username%_%computername%.txt
wmic csproduct get name >> %username%_%computername%.txt
wmic bios get serialnumber >> %username%_%computername%.txt
Если самосбор, то данные о материнской плате будут получены строкой, предложенной SergeyZV
wmic BASEBOARD get Manufacturer,Product,SerialNumber >> %username%_%computername%.txt
А дата установки ОС ни о чем.


Последний раз редактировалось: Albert (2016-12-10 20:24), всего редактировалось 3 раз(а)

[Цитировать]

    Adler
  • 1708
  • Стаж: 1 год 6 месяцев
  • Сообщений: 680
  • Репутация:19

    [+] [-]
  • Откуда: Луганск
Albert, ну как я понимаю, то задача определить не самосбор или нет, а "моя / не моя" и дата установки просто боком припеком, чисто для справки...
bvit2009, можно ничего не менять, попробуйте свой msg.exe заменить на этот. По идее везде должен работать, т.к. использует FW 2.0 (разве что кроме абсолютно голой XP копии лицензии, могу ошибаться, но в SP3 он вроде есть).
Принимает только один параметр и выводит его в виде MsgBox, если параметров нет или больше 1, то ничего не выводит и закрывается втихую.

В принципе такое лучше на каком то другом языке сделать без проблем с его знаниями уровня HelloWorld...
Сам сделал. Читайте ниже...


Последний раз редактировалось: Adler (2016-12-11 16:48), всего редактировалось 3 раз(а)

[Цитировать]

    nikzzzz
  • 215
  • Стаж: 2 года 3 месяца
  • Сообщений: 1154
  • Репутация:45

    [+] [-]
33246Через дос-окно почему то не хочется показывать клиенту информацию.
Дос окошко можно сделать максимально похожем на msgbox, пример
@echo off
title System information
mode con cols=50 lines=15
color f0
cls
echo.
echo   В системе отсутствует файл параметров Windows.
echo   ОС установленна сторонним мастером .
pause >nul

Страница 2 из 3


Показать сообщения:    

Текущее время: 28-Апр 03:26

Часовой пояс: UTC + 3


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