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

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

Модерирует : KLASS, IFkO

vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Nagual



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задачи на bat-файлах 5
(часть 1, часть 2, часть 3 , часть 4)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<<>>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки
 
Полезные утилиты
 
Готовые решения и частые вопросы:
  • Встроенный справочник по командам
  • Создание помощи по всем командам консоли 2000 и XP
  • Делаем паузу в командном файле стандартными средствами Windows
  • Альтернативные решения »
  • Работа с текстом, датой, и файлами »
  • Администрирование, автоматизация и сеть »
  • Работа с переменными и параметрами ком. строки »
     
    Описания работы команд и символов участниками темы:
    · setlocal enabledelayedexpansion и переменные окружения
    · символы & и && в командной строке
    · Переменная %0

  • Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 12:28 19-03-2008 | Исправлено: Nagual, 01:02 24-09-2008
    Elroir



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

    Код:
     
    @echo off  
    cmdow @ /hid
    rasdial "MEGAFON"
     



    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:25 12-07-2008
    Pacho



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

    Код:
    @IF EXIST "%WinDir%\System32\FSUtil.exe" FOR /f "TOKENS=*" %%i IN ('FSUTIL FSINFO VOLUMEINFO %~d0\ ^| FIND "NTFS"') DO GOTO NTFS
    @ECHO COPY файл папка
    @GOTO :EOF
     
    :NTFS
    @ECHO FSUTIL HARDLINK CREATE папка\файл файл

    Можно ли конструкцию с GOTO заменить на чё-нить, типа

    Код:
    @IF EXIST "%WinDir%\System32\FSUtil.exe" (
      IF <чё-то там>=="NTFS" @ECHO FSUTIL HARDLINK CREATE папка\файл файл
    ) ELSE @ECHO COPY файл папка
    ?
     
    И как запустить FSUtil.exe в Windows Vista от имени администратора из командной строки?

    ----------
    Нет судьбы, кроме той, которую мы выбираем.

    Всего записей: 260 | Зарегистр. 02-04-2005 | Отправлено: 16:07 12-07-2008 | Исправлено: Pacho, 16:11 12-07-2008
    mike345S



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уж не знаю, ту ли тему выбрал, но вопрос имеет отношение, по крайней мере к autoexec.bat
     
    Диск с заливкой (от RussianNeuroMancer) не может определить cd на мамках p5 с JMicron.
    Причем начальная загрузка проходит, а вот после нее говорит что нет CD.
    Драйвер для JMICRON (GCDROM.SYS) нашел.
     
    Как правильно добавить драйвер (и сохранить работоспособность уже имеющихся)?
     
    config.sys---------------------
     
    [COMMON]
    NumLock=On
    files=10
    buffers=10
    dos=high,umb
    stacks=9,256
    lastdrive=z
    device=display.sys con=(ega,,1)
    country=007,866,country.sys
    device=oakcdrom.sys /D:mscd001
    device=btdosm.sys
    device=flashpt.sys
    device=btcdrom.sys /D:mscd001
    device=aspi2dos.sys
    device=aspi8dos.sys
    device=aspi4dos.sys
    device=aspi8u2.sys
    device=aspicd.sys /D:mscd001
    device=GCDROM.SYS /D:mscd002
    devicehigh=ramdrive.sys /E 4096
    ------------------------------------
     
    autoexec.bat---------------------
     
    @ECHO OFF
    \hibinv.exe
    set EXPAND=YES
    SET DIRCMD=/O:N
    set LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15
    set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C
    mode.com con cp prepare=((866) ega3.cpi)
    mode.com con cp select=866
    keyb.com ru,,keybrd3.sys
    call setramd.bat %LglDrv%
    set temp=c:\
    set tmp=c:\
    path=%RAMD%:\;a:\;%path%;%CDROM%:\
    LH A:\MSCDEX.EXE /D:mscd001 /L:%CDROM%
    copy %CDROM%:\DEPLOY.bat %RAMD%:\ > NUL
    %RAMD%:\DEPLOY.bat
    ------------------------------------

    Всего записей: 550 | Зарегистр. 31-01-2006 | Отправлено: 16:25 12-07-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mike345S
    Насколько я помню, надо изменить строчку с mscdex.exe в autoexec.bat:

    Код:
    LH A:\MSCDEX.EXE /D:mscd001 /D:mscd002 /L:%CDROM%



    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:27 12-07-2008
    01MDM



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

    Цитата:
    И как запустить FSUtil.exe в Windows Vista от имени администратора из командной строки?

     
    Висты нет, попробуй запускать через runas. Или сам fsutil  или батник с этой командой или cmd из которого будешь запускать.
     
    runas /?
    runas /savecred - тоже может помочь
     
    Так же можно использовать psexec
     

    Код:
     
    psexec -u Administrator -p <adminPass> program.exe
     

     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:01 12-07-2008
    max200701

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    спасибо большое всё отлично работает

    Всего записей: 65 | Зарегистр. 27-02-2008 | Отправлено: 19:41 12-07-2008
    JI063uk



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

    Здравствуйте, подскажите как можно с помощи батника сделать полное стирание диска (после полного стирания диск обычно выкидывается приводом) и вставить его обратно для последующей записи.
     
    для записи диска делаю так
    @echo off
    cd Program Files\Nero\Nero 7\Core\
    NeroCmd.exe --write --real --iso ArchBase --drivename G --force_erase_disc --dvd --dvd_high_compatibility F:\Rec\*.*
    exit
    надо чтобы перед этим он его затер причем полное стирание?
     

    Всего записей: 55 | Зарегистр. 24-01-2008 | Отправлено: 20:03 12-07-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JI063uk
    А посмотрть другие ключи утилиты nerocmd не судьба?

    Код:
     
    NeroCmd.exe --erase --entire --drivename G --disable_eject_after_erase
     


    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 21:46 12-07-2008
    JI063uk



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


    Цитата:
    Elroir

    Спасибо
    Просто под рукой нету неро

    Всего записей: 55 | Зарегистр. 24-01-2008 | Отправлено: 21:48 12-07-2008
    Pacho



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

    Цитата:
    Висты нет, попробуй запускать через runas.

    В Висте для исполняемых файлов есть пункт контекстного меню "Запуск от имени администратора". При его выборе открывается диалоговое окно повышения прав. Я хочу добиться такого же эффекта через bat-файл.
     
    Вот нашёл утилиту, добавляющую это меню для других файлов:
    http://download.microsoft.com/download/f/d/0/fd05def7-68a1-4f71-8546-25c359cc0842/Elevation2008_06.exe
     
    Там есть файлы elevate.cmd
    Код:
    :: // Usage:     elevate.cmd application <application arguments>
    @setlocal
    @echo off
     
    :: Pass raw command line agruments and first argument to Elevate.vbs
    :: through environment variables.
    set ELEVATE_CMDLINE=%*
    set ELEVATE_APP=%1
     
    start wscript //nologo "%~dpn0.vbs" %*

    и elevate.vbs
    Код:
    Set objShell = CreateObject("Shell.Application")
    Set objWshShell = WScript.CreateObject("WScript.Shell")
    Set objWshProcessEnv = objWshShell.Environment("PROCESS")
     
    ' Get raw command line agruments and first argument from Elevate.cmd passed
    ' in through environment variables.
    strCommandLine = objWshProcessEnv("ELEVATE_CMDLINE")
    strApplication = objWshProcessEnv("ELEVATE_APP")
    strArguments = Right(strCommandLine, (Len(strCommandLine) - Len(strApplication)))
     
    If (WScript.Arguments.Count >= 1) Then
        strFlag = WScript.Arguments(0)
        If (strFlag = "") OR (strFlag="help") OR (strFlag="/h") OR (strFlag="\h") OR (strFlag="-h") _
            OR (strFlag = "\?") OR (strFlag = "/?") OR (strFlag = "-?") OR (strFlag="h") _
            OR (strFlag = "?") Then
            DisplayUsage
            WScript.Quit
        Else
            objShell.ShellExecute strApplication, strArguments, "", "runas"
        End If
    Else
        DisplayUsage
        WScript.Quit
    End If

     
    Можно ли команду
    Код:
    objShell.ShellExecute strApplication, strArguments, "", "runas"
    переписать в командном bat-файле, например через RunDLL32.exe?

    ----------
    Нет судьбы, кроме той, которую мы выбираем.

    Всего записей: 260 | Зарегистр. 02-04-2005 | Отправлено: 21:00 13-07-2008 | Исправлено: Pacho, 21:03 13-07-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pacho
     
    Я так понял, что этот батник и скрипт, просто обертка для `runas`.  С таким же успехом применяй чистый runas
     

    Код:
     
    runas /user:Администратор <command>
     

     
    Или, как уже писал выше, psexec  

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 21:13 13-07-2008 | Исправлено: 01MDM, 21:14 13-07-2008
    Pacho



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

    Цитата:
    Я так понял, что этот батник и скрипт, просто обертка для `runas`. С таким же успехом применяй чистый runas

    Не совсем так. Дело в том, что в Vista учётная запись Администратора по-умолчанию отключена. И программы через RunAs от имени Администратора соответственно не запускаются.
    Ты же работаешь под другой учётной записью, которая может и входить в группу администраторов, но имеет ограничения, в частности на запуск некоторых приложений. А команда контекстного меню "Запуск от имени администратора" запрашивает разрешение на получение административных прав.
    Мне же надо запустить приложение, не включая учётку Администратора, что вышеприведённый скрипт и делает при помощи функции
    Код:
    objShell.ShellExecute strApplication, strArguments, "", "runas"

    Тока вот можно ли что-то подобное в батнике написать?
     

    Цитата:
    Или, как уже писал выше, psexec

    Хотелось бы сделать это без сторонних утилит.

    ----------
    Нет судьбы, кроме той, которую мы выбираем.

    Всего записей: 260 | Зарегистр. 02-04-2005 | Отправлено: 23:16 13-07-2008 | Исправлено: Pacho, 07:20 14-07-2008
    tolyn77



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите как узнать через батник на удаленном компьютере какя стоит операционная система русская или английская?
    заранее благодарен

    Всего записей: 1495 | Зарегистр. 07-09-2004 | Отправлено: 17:19 14-07-2008
    KapralBel



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

    Код:
    @Echo Off
    If Exist "\\Comp\C$\Documents and Settings\All Users\Документы\desktop.ini" GoTo :Ru
    Echo Other
    GoTo :EOF
    :Ru
    Echo Russian
     

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:30 14-07-2008
    tolyn77



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    а есть более надежный способ определения? я посмотрел на сервере английском там нет файла desktop.ini

    Всего записей: 1495 | Зарегистр. 07-09-2004 | Отправлено: 09:37 15-07-2008
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    tolyn77
    Он скрытый
    А во вторых тут определяется именно русская версия, остальное считается англ.
    Не отлавливается ситуация с англ.версией+русский MUI

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 09:44 15-07-2008
    tolyn77



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    если он был скрытый ну не совсем я чайник
    тоесть более универсального способа нет?
    а как можно ver запусть на удаленном компе?

    Всего записей: 1495 | Зарегистр. 07-09-2004 | Отправлено: 11:22 15-07-2008
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    tolyn77
    через AT /? с перенаправлением в текстовый файл
     
    Кстати - зачем знать язык? - может подскажу другое решение

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:52 15-07-2008
    01MDM



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

    Код:
     
    @echo off
     
    set regpath=HKU\.DEFAULT\Control Panel\International
    reg query "\\comp\%regpath%" /v locale | findstr "419" 1>nul && echo rus || echo other
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:19 15-07-2008
    igor_andreev

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

    Цитата:
    "\\comp\%regpath%" /v locale

    Это локаль, не операционка. У меня на английской Windows там тоже 419 стоит. Для определения версии ОС лучше, как KapralBel посоветовал, определять наличие какой-нить специфической папки, Документы, Избранное, Рабочий Стол...  

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 13:09 15-07-2008
       

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 5
    vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru