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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    JohnRD

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven Joolz
     
    спасибо большое, меня хватило на удалить, создать папку снова

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 09:23 21-05-2008
    satysaty



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброе утро, подскажите мне требуется запускать файл лежащий: C:\Documents and Settings\Администратор\Рабочий стол\имя файла
    С задержкой в 40 секунд после загрузки ОС. Как осуществить на батниках?

    Всего записей: 56 | Зарегистр. 14-11-2006 | Отправлено: 09:44 21-05-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    satysaty
    Файл или программу?
    Батник в автозагрузку.

    Код:
     
    @echo off
    ping -n 41 localhost >nul
     
    :: Если зарегистрированный тип файла
    "C:\Documents and Settings\Администратор\Рабочий стол\имя файла"
     
    :: Если программа
    start "" "C:\Documents and Settings\Администратор\Рабочий стол\имя файла"  
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:55 21-05-2008
    tolyn77



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

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



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    tolyn77
    Ver>Version.txt
    и проверяй на совпадения номеров версий
    5.2 - Win2003
    5.1 - WinXP

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:12 21-05-2008
    half15



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите плиззз!
    Нужен bat файл, который выводит на экран имя файла (из текущего каталога), который не изменялся дольше всех.

    Всего записей: 3 | Зарегистр. 21-05-2008 | Отправлено: 19:45 21-05-2008
    king_stiven

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

    Код:
    for /f "tokens=*" %%c in ('dir *.* /b /O:D /T:W /a:-d') do (
        echo %%c
        goto :eof
    )

    или

    Код:
    for /f "tokens=*" %%c in ('dir *.* /b /O:-D /T:W /a:-d') do (
        echo %%c
        goto :eof
    )

    Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 20:33 21-05-2008
    half15



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    Спасибо БОЛЬШОЕ

    Всего записей: 3 | Зарегистр. 21-05-2008 | Отправлено: 21:01 21-05-2008
    tolyn77



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    если мне нужно проверять 9x/nt/w2k/xp/w2k3?

    Всего записей: 1495 | Зарегистр. 07-09-2004 | Отправлено: 09:30 22-05-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tolyn77
     
    Не знаю, будет это работать на 9* или нет

    Код:
     
    @echo off
    set rem=rem
    if not "%OS%"=="Windows_NT" goto 98
    set rem=
    %rem% for /f "tokens=2 delims==" %%i in ('netsh diag show os /v ^| findstr /i "caption"') do (
    %rem%     set "_OS=%%i"
    %rem% )
     
    goto result
     
    :98
    set %_OS%=95-Me
     
    :result
    echo %_OS%
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:56 22-05-2008
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    01MDM
    На 98-й я таким образом проверял
     
    tolyn77
    Ну посмотри, какая ОС какую версию возвращает и доработай
    Просто у меня под рукой или ХР или 2003

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:05 22-05-2008
    sVx



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


    Код:
     
    @ECHO OFF
     
    :: OS checks  
    VER | FIND /I "95" > NUL
    IF %ERRORLEVEL%==0 goto :WIN95
    VER | FIND /I "98" > NUL
    IF %ERRORLEVEL%==0 goto :WIN98
    VER | FIND /I "NT" > NUL
    IF %ERRORLEVEL%==0 goto :WINNT
    VER | FIND /I "2000" > NUL
    IF %ERRORLEVEL%==0 goto :WIN2K
    VER | FIND /I "ME" > NUL
    IF %ERRORLEVEL%==0 goto :WINME
    VER | FIND /I "XP" > NUL
    IF %ERRORLEVEL%==0 goto :WINXP
    VER | FIND /I "3790" > NUL
    IF %ERRORLEVEL%==0 goto :WIN2K3
     
    ECHO Unknown OS  
    goto :eof
     
    :WIN95
    ECHO WIN95 commands go here
    goto :eof
     
    :WIN98
    ECHO WIN98 commands go here
    goto :eof
     
    :WINNT
    ECHO WINNT commands go here
    goto :eof
     
    :WIN2K
    ECHO WIN2K commands go here
    goto :eof
     
    :WINME
    ECHO WINME commands go here
    goto :eof
     
    :WINXP
    ECHO WINXP commands go here
    goto :eof
     
    :WIN2K3
    ECHO WIN2K3 commands go here
    goto :eof
     
    :EOF
     


    Всего записей: 157 | Зарегистр. 17-06-2004 | Отправлено: 11:57 22-05-2008 | Исправлено: sVx, 13:30 22-05-2008
    Joolz

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sVx
    В 2003 не получится, там выводится Microsoft Windows и версия.
    Для XP и 2003 можно получить еще и так:

    Код:
    reg query "\\RemotePC\HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v "ProductName"

    Всего записей: 100 | Зарегистр. 24-01-2008 | Отправлено: 12:22 22-05-2008 | Исправлено: Joolz, 12:26 22-05-2008
    half15



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А как можно определить через bat файл сколько символов, слов и строк в текстовом файле?

    Всего записей: 3 | Зарегистр. 21-05-2008 | Отправлено: 12:43 22-05-2008
    sVx



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

    Цитата:
    В 2003 не получится, там выводится Microsoft Windows и версия.

    тогда так:

    Код:
     
    VER | FIND /I "3790" >NUL
    IF %ERRORLEVEL%==0 goto :WIN2K3
     

    Всего записей: 157 | Зарегистр. 17-06-2004 | Отправлено: 13:26 22-05-2008
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    sVx
    Ищи по первым символам (5.2. или 5.1.) а не последним

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 13:43 22-05-2008
    inock

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спотыкнулся на ровном месте. Ситуация такая:
     
    C:\admin>net share
     
    Общее имя   Ресурс                        Заметки
    -----------------------------------------------------------------------
    E$           E:\                             Стандартный общий ресурс
    IPC$                                         Удаленный IPC
    D$           D:\                             Стандартный общий ресурс
    print$       C:\WINDOWS\system32\spool\drivers
                                                 Драйверы принтеров
    C$           C:\                             Стандартный общий ресурс
    ADMIN$       C:\WINDOWS                      Удаленный Admin
    F$           F:\                             Стандартный общий ресурс
    films        E:\films
    Папка для опытов
                 E:\Папка для опытов
    Команда выполнена успешно.
     
    ============================================
     
    Обратите внимание, что строка, описывающая "Папка для опытов" разбита надвое (кстати как и строка описывающая "Драйверы принтеров"). Соответственно, команда  
     
    FOR /F "tokens=1,1" %%i IN ('net share ^| find /i ":" ^| find /i /v "$"') do ...
     
    отрабатывает некорректно. В одном случае мы получим обработку ресурса "films" во втором - обработку ресурса "E:\Папка" (что вызовет ошибку).
     
    Как выйти из этого затруднительного положения с длинными именами файлов (и сетевых ресурсов), содержащими пробел?
     
     
    PS: Блин. С "tokens=*" мы тоже ничего путного не получаем:
     
    C:\admin\PsTools>net share "E:\Папка для опытов             " /delete
    Не удалось найти соответствующий общий ресурс. Удаление не выполнено.
     
    куча завершающих пробелов не в тему...

    Всего записей: 37 | Зарегистр. 06-12-2004 | Отправлено: 13:57 22-05-2008 | Исправлено: inock, 15:57 22-05-2008
    igor_andreev

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

    Цитата:
    Как выйти из этого затруднительного положения с длинными именами файлов (и сетевых ресурсов), содержащими пробел?

    Можно в него просто не попадать , не называя расшаренные ресурсы именами длиннее 12 символов, как собственно сама windows и рекомендует при расшаривании папки. Назови "Папка для опытов" -> Experiments, а "Драйверы принтеров" -> Prndrivers да и все, а в описании сетевого ресурса добавь по русски с пробелами что хошь.

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 16:04 22-05-2008
    lanselotideo1111



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Стыдно признаться. но есть проблема с cmd.  
    Есть один файл в котором в столбик записано несколько строк вида:
    12050999.111
    13050999.111
    14050999.111
    ...................
    90050999.111
    Необходимо открыть этот файл и убрать в каждой строчке три последних символа и вывести результат в новый файл:
    12050999
    13050999
    14050999
    ...................
    90050999
     
    Помогите решить задачу, пожалуйста.

    Всего записей: 33 | Зарегистр. 04-10-2006 | Отправлено: 17:21 22-05-2008
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lanselotideo1111
    Точка - тоже символ(и пробел в конце строки тоже, если есть), убирать уже четыре надо

    Код:

    @echo off
    for /f "tokens=* delims=" %%a in (test.txt) do call :label "%%a"
    goto :eof
     
    :label
    set "line=%~1"
    set "line=%line:~0,-4%"
    echo %line%>>new.txt


    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 17:41 22-05-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