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

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

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

vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 100 101

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 17:45 04-09-2010 | Исправлено: Accessor, 18:04 28-09-2010
    praidik



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте.
    Такой вопрос...
    Какой командой можно создать пользователь на компе и пароль к нему? Но главное как этот пользователь скрыть с глаз, дабы при загрузке он не отображался...

    Всего записей: 39 | Зарегистр. 15-11-2010 | Отправлено: 11:02 03-01-2011
    wolf0425



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

    Цитата:
    Какой командой можно создать пользователь на компе и пароль к нему?
    может поможет net user /?  
     

    Цитата:
    Но главное как этот пользователь скрыть с глаз, дабы при загрузке он не отображался...

    Код:
    REGEDIT4
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList]
    "secretadmin"=dword:00010000
    это регфайл для скрытия.
    что прописывать для reg.exe - сам разберешься.

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 11:17 03-01-2011 | Исправлено: wolf0425, 11:20 03-01-2011
    praidik



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

    Всего записей: 39 | Зарегистр. 15-11-2010 | Отправлено: 12:12 03-01-2011
    13091986



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    У меня в одной папке находится n-ое количество файлов.  
    Батник собирает их в один файл.
     
    Как сделать чтобы, допустим перед началом операции в итоговый файл прибавлялось значение +1, версия файла.  
     
    Заранее благодарен.

    Всего записей: 136 | Зарегистр. 21-03-2006 | Отправлено: 13:24 03-01-2011
    king_stiven

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

    Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 13:29 03-01-2011
    13091986



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
     
    есть папка cpfunct в ней файлы 1.js, 2.js, 3.js
    при запуске bat файла создается новый файл main.js который содержит в себе код всех файлов папки jss.
     
    нужно в начале файла main.js при сборке добавлять строку: var vers=N
    Где N - номер компиляции. Эта цифра должна добавляться инкрементом при каждом запуске bat файла.  
     
    Вот код текущего батника:
     

    Код:
     
    @echo off
    REM Имя файла
    SET NewFile=cpfunct.js
     
    cd \cpfunct\
     
    @echo.>%NewFile%
    for %%i in (*.js) do COPY /B %NewFile%+%%i %NewFile%
     
    move %NewFile% ..\%NewFile%
     


    Всего записей: 136 | Зарегистр. 21-03-2006 | Отправлено: 13:48 03-01-2011 | Исправлено: 13091986, 13:54 03-01-2011
    wolf0425



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

    Цитата:
    Эта цифра должна добавляться инкрементом при каждом запуске bat файла.  
    в каком месте вредлагается хранить текущее значение N между запусками батника? ещё в каком-то файле?

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 16:41 03-01-2011
    01MDM



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

    Цитата:
    в каком месте вредлагается хранить текущее значение N между запусками батника?

    Наверное в main.js.
    13091986
    Не проверял:

    Код:
     
    @echo off
    setlocal
     
    set /p vers=<main.js
     
    for /f "tokens=2 delims==" %%i in ("%vers%") do set /a ver=%%i+1
     
    1>main.tmp (
     
        echo var vers=%ver%
        more +1 main.js
     
    )
     
    del main.js
     
    for %%i in (*.js) do copy /b main.tmp+%%i main.tmp
    ren main.tmp main.js  
     

    'var vers=N' идет первой строчкой в main.js

    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 17:12 03-01-2011
    PADlabs

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ребята, помогите плз
    задача: создать рег-файл для привязки создания пустого текстового файла к контекстному меню файлов
     
    наподобие этого

    Код:
    Windows Registry Editor Version 5.00
     
    [HKEY_CLASSES_ROOT\*\shell\Создать описание к файлу]
    @=""
     
    [HKEY_CLASSES_ROOT\*\shell\Создать описание к файлу\command]
    @="cmd.exe /c %1 "xcopy "%systemdrive%\666.txt" "%%~p1\%%~n1.txt" /Y""

    вторая версия

    Код:
    Windows Registry Editor Version 5.00  
     
    [HKEY_CLASSES_ROOT\*\shell\Создать описание к файлу]  
    @=""  
     
    [HKEY_CLASSES_ROOT\*\shell\Создать описание к файлу\command]  
    @="cmd /c "cd /d %~p1 && edit %~n1.txt && notepad.exe %~n1.txt""

     
    смысл в следующем, при выборе данного пункта в контекстном меню в этой же папке должен создаваться пустой текстовый файл с именем оригинального файла (без расширения оригинального файла) и после этого открываться
     
    что я только не делал, не могу создать и все, даже пришлось копирование обычное ставить, но и с ним не хочет выполняться через контекстное меню (выдает сообщение что-то в духе аля нет ассоциаций с этим типом файлов)

    Всего записей: 46 | Зарегистр. 21-03-2007 | Отправлено: 00:11 04-01-2011 | Исправлено: PADlabs, 00:17 04-01-2011
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    PADlabs
    Создай батник createTxt.cmd со следующим содержанием:

    Код:
     
    @echo off
    cd /d "%~p1"
    set /p<nul>>"%~n1.txt"
    start "" notepad "%~n1.txt"
     

    и положи его, например, в Windows\System32 директорию.
    Добавь в реестр:

    Код:
     
    Windows Registry Editor Version 5.00
     
    [HKEY_CLASSES_ROOT\*\shell\Создать описание к файлу]
     
    [HKEY_CLASSES_ROOT\*\shell\Создать описание к файлу\command]
    @="cmd /c createTxt.cmd \"%L\""
     
     

    И будет тебе счастье

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 01:03 04-01-2011
    PADlabs

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

    Всего записей: 46 | Зарегистр. 21-03-2007 | Отправлено: 11:32 04-01-2011
    Appmen

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте
    Мне нужно написать бат файл, который будет читать строку из текстового файла, заносить её в переменную и создавать папку с этим названием. В текстовом файле слова разделены символами табуляции и пробелами. Я написал такой скрипт
     
    FOR /F "eol= tokens= delims=" %%i in (Output.txt) do (md %%i)
     
    Но этот скрипт не создаёт 1 папку на каждую строку, а столько папок, сколько у меня есть слов. Я пробовал колдовать с delims=, но безуспешно . если же написать ...(md "%%i"), то выдаёт ошибку т.к. в названии файла присутствует симовл табуляции (<Tab>). Как вариант можно заменить этот символ на пробел, но я не знаю как , а те примеры, которые встречал в интернете не помогли

    Всего записей: 2 | Зарегистр. 04-01-2011 | Отправлено: 18:30 04-01-2011
    king_stiven

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

    Код:
    FOR /F "tokens=1,2,3,4,5 delims=    , " %%a in (Output.txt) do md "%%a %%b %%c %%d %%e"

    несовершенный пример, но если в строке не очень много слов(до 26), пойдёт:

    Код:
    FOR /F "tokens=1,2,3,...,26 delims=    , " %%a in (Output.txt) do md "%%a %%b %%c ... %%z"
     

    после delims= идёт знак табуляции а не пробел!

    Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 19:01 04-01-2011 | Исправлено: king_stiven, 19:13 04-01-2011
    wolf0425



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

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

    Код:
    FOR /F "delims=" %%i in (Output.txt) do set "dir=%%~i" && call md "%%dir:    = %%"

    в "%%dir:    = %%" перед = стоит табуляция, после - пробел.

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 01:16 05-01-2011 | Исправлено: wolf0425, 04:44 05-01-2011
    Appmen

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425, огромное спасибо!

    Всего записей: 2 | Зарегистр. 04-01-2011 | Отправлено: 10:45 05-01-2011
    zhuchella

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ToALL
    Подскажите, как из определённого файла *.ini стереть три последнее строчки ?

    Всего записей: 5466 | Зарегистр. 15-07-2003 | Отправлено: 13:16 08-01-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    zhuchella
    С помощью grep.exe:

    Код:
     
    @echo off
    setlocal
     
    for /f %%i in ('grep -c ".*" test.ini') do set /a "lines=%%i-3"
     
    grep -m %lines% ".*"  test.ini | 1>test.tmp more
    move test.tmp test.ini
     



    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:26 08-01-2011 | Исправлено: 01MDM, 22:45 08-01-2011
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    zhuchella, и с помощью sed.exe
    type file1.txt | sed "$d" | sed "$d" |sed "$d" >file2.txt

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 22:37 08-01-2011 | Исправлено: wolf0425, 22:38 08-01-2011
    zhuchella

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

    Цитата:
    С помощью grep.exe:  

    Не получилось. Файл после этой операции весь пустой
     
    Добавлено:

    Цитата:
    zhuchella, и с помощью sed.exe
    type file1.txt | sed "$d" | sed "$d" |sed "$d" >file2.txt  

    сделай файл *.cmd с этим текстом - и ничего не произошло...

    Всего записей: 5466 | Зарегистр. 15-07-2003 | Отправлено: 01:24 09-01-2011
    01MDM



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

    Цитата:
    Не получилось. Файл после этой операции весь пустой

    Проверил еще раз, у меня все работает. Ты grep скачал?


    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 08:44 09-01-2011
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 9
    vu1tur (09-01-2011 11:53): лимит страниц, продолжение — http://forum.ru-board.com/topic.cgi?forum=62&topic=22143


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru