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

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

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

vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:37 26-05-2009 | Исправлено: TechnicsKuzya, 13:53 27-12-2009
    wolf0425



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

    Цитата:
    теперь все понятно, - вопрос в дефинициях (qui pro guo)  - но soft111 просил удалить именно эту "пустую" строку и  
    угу, проблемы с терминологией - он признак конца строки просил удалить, crlf
    зачем ему это надо - непонятно, но бывает и нужно.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 16:08 12-11-2009
    mugil_cephalus

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

    Цитата:
    в таких тестовых примерах не забывай вписывать в печать маркер начала строки, например echo.-%a

    это понял

    Цитата:
    чтоб быо видно - печатал ли кто-то тут и сколько раз.  

    это нет
     
    Добавлено:
    wolf0425

    Цитата:
    угу, проблемы с терминологией - он признак конца строки просил удалить, crlf

    теперь ВООБЩЕ ВСЕ понятно - после такого пояснения - теперь я знаю (sic!) как "называется" эта "пустая" строка - признак конца строки (CRLF)

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 16:10 12-11-2009 | Исправлено: mugil_cephalus, 16:16 12-11-2009
    soft111

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mugil_cephalus
     
    Мне все равно, url одинаковые всегда будут.

    Всего записей: 25 | Зарегистр. 05-11-2009 | Отправлено: 17:20 12-11-2009
    mugil_cephalus

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

    Код:
    echo on
    for %%A in (C:\test2\*.txt) do call:_1 %%A
    set var1=
    set var2=
    goto :eof
     
    :_1
    for /f "tokens=3 delims=: " %%i in ('"type %1"') do set "var1=%%i"
    set "var2=%var1:~0,-7%"
    0>nul 1>C:\test2\%~n1_.txt set /p="https:%var2%" && del /q %1 && ren C:\test2\%~n1_.txt %~nx1
    goto :eof
     

     
    Добавлено:
    wolf0425

    Цитата:
    for /f "delims=" %%A in ('dir /b /a-d C:\test\*.txt') do call:_1 %%A

    а почему можно использовать семантику /a-d , а не /a:-d ?
    DIR [диск:][путь][имя_файла] [/A[[:]атрибуты]]

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 09:03 13-11-2009
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mugil_cephalus
    /a [[:] атрибуты]  
    Выводит имена только тех файлов и каталогов, которые имеют указанные атрибуты. Если параметр /a не указан, команда dir выводит имена всех файлов, за исключением системных и скрытых. Если параметр /a указан без атрибутов, команда dir выводит имена всех файлов, включая скрытые и системные. Ниже приведен список значений, которые могут быть использованы при задании параметра атрибуты. Двоеточие (: ) является необязательным.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 10:01 13-11-2009 | Исправлено: king_stiven, 10:02 13-11-2009
    soft111

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mugil_cephalus
     
    Большое Вам спасибо, обе задачи теперь работают корректно. Вы мне очень помогли.

    Всего записей: 25 | Зарегистр. 05-11-2009 | Отправлено: 10:20 13-11-2009
    mugil_cephalus

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

    Цитата:
    Если параметр /a указан без атрибутов, команда dir выводит имена всех файлов, включая скрытые и системные.  

    то есть, если /a без атрибутов, то получу все-все файлы? и файлы, и папки (directories), и hide, и sys, и read, и archive, и без атрибутов? то есть таким способом (меня давно это вопрос интересовал, просто пока не задавал его на форуме) можно вывести АБСОЛЮТНО весь list каталога, даже то, чего explorer иначе показывает (list of temporary inet files, например)?

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 10:22 13-11-2009 | Исправлено: mugil_cephalus, 10:29 13-11-2009
    wolf0425



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

    Цитата:
    (list of temporary inet files, например)?
    а что, потратить 5 секунд и проверить - опять влом, надо на форуме спрашивать? замечательно выведет.
     
    список всех файлов c:\
    1>filelist.txt dir /b/s/a-d C:\
    только надо быть аккуратным - сейчас не прошлый век, и на диске запросто могут быть файлы  с символами в именах, не укладывающимися в восьмибитную кодировку дефолтовой кодовой страницы (866)

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 11:49 13-11-2009
    mugil_cephalus

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

    Цитата:
    а что, потратить 5 секунд и проверить - опять влом, надо на форуме спрашивать? замечательно выведет.

    один/два раза проверить и получить нужный результат не тождественно закономерности (можно и на красный свет удачно перейти дорогу  - это случайность, которая не означает закономерность (были времена, когда я инетился без антивира и файервола и использовал кириллицу в нэйминге - это не значит, что я делал правильно, какое-то время это работало, но потом я "узнал", что это случайность, а не закономерность ) не всегда можно индукцией придти к дедукции (вот такая вот дидактика получается ) зачем ходить по тонкому льду, когда уже есть проторенные дорожки?.. зачем строить замки из песка, когда сразу можно заложить надежный фундамент?...
     
     
    по существу, а не по "регламенту" :
    а как я проверю , что в tempInetFilesDirList я получил ПОЛНЫЙ перечень - посмотреть, что из 200.000 не вошло в список? это же CLI, а не GUI - здесь ошибки подолгу латентны

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 12:34 13-11-2009 | Исправлено: mugil_cephalus, 12:44 13-11-2009
    SANIOK_AV



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток!
    Такой вопрос:
    Запускаю пакетный файл 1.bat  с правами пользователя admin:

    Код:
    SCHTASKS /CREATE /RU admin /RP 123456 /SC once /TN zadanie /TR d:\1.bat /ST 00:00:00
    SCHTASKS /RUN /TN zadanie

    Но вот проблемма: я не вижу в данном случае cmd-шное окно пакетного файла 1.bat (видимо учитывая что задание выполняется под пользователем admin)
    Подскажите пожалуйста, можно ли как-то победить эту ситуацию?
    Заранее благодарен!  
     
     
    Добавлено:
    Ещё добавлю:
    в команде SCHTASKS /RUN есть ключи /S система и /U пользователь (ключ /U пользователь без ключа /S система не работает) можно ли в этих ключах указать универсально локальную систему и пользователя?

    Всего записей: 485 | Зарегистр. 31-03-2009 | Отправлено: 12:39 13-11-2009
    wolf0425



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

    Цитата:
    по существу, а не по "регламенту" :
    а как я проверю , что в tempInetFilesDirList я получил ПОЛНЫЙ перечень
    пересчитать строки и сравнить с тем что пишет эксплорер в свойствах каталога?

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:54 13-11-2009
    mugil_cephalus

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

    Цитата:
    в команде SCHTASKS /RUN есть ключи /S система и /U пользователь (ключ /U пользователь без ключа /S система не работает) можно ли в этих ключах указать универсально локальную систему и пользователя?

    в этих - нет, для лок.сис - запуск без этих ключей запустит job от имени текущего залогинненого пользователя
     
    можешь попробовать (не знаю получится ли) клюи /ru и /rp
     
    Добавлено:
    wolf0425

    Цитата:
    пересчитать строки и сравнить с тем что пишет эксплорер в свойствах каталога?

    так это ж спецпапки - explorer отображает их иначе, чем в реальности (far'om например)
    например в tasks он не отображает SchedLgU.Txt, sa.dat , а папку history explorer и far показывают по-разному и не отображает explorer в tempinet - AntiPhishing, content.ie5 (+много subfolders с файлами, у которых совпадают имена (например index.html)), content.word, WebTempDir etc
    tempinetfiles отображает и файлы из %USERPROFILE%\Cookies

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 13:04 13-11-2009 | Исправлено: mugil_cephalus, 13:36 13-11-2009
    SANIOK_AV



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mugil_cephalus
    что за job?

    Всего записей: 485 | Зарегистр. 31-03-2009 | Отправлено: 13:23 13-11-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SANIOK_AV
    в папке WINDOWS\Tasks задания - это файлы *.job (посмотри far'om например)

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 13:32 13-11-2009
    savvato



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день уважаемые форумчане, извините что пишу может быть не в той теме. Как скопировать файлы с заменой в ситемные папки Windows. Конкретно интересует папка %WINDIR%/ehome в Windows . Как я понимаю надо забрать у system права на Администратора. Делал с помощью cacls и subinacl не помогает ... В безопасном режиме все ок копируеться ,но задача сделать это в обычном режиме при первом запуске с помощью батника. Ось Windows XP PRO rus с интегрированным eng медиацентром .В %WINDIR%/ehome хочу закинуть локализированые файлы для Медиацентра.

    Всего записей: 52 | Зарегистр. 09-05-2009 | Отправлено: 13:50 13-11-2009
    NIKZZZZ



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

    Цитата:
    Делал с помощью cacls и subinacl не помогает

    Может попробовать UnLocker? Портабле-версию для работы из ком. строки я выкладывал здесь.
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 14:02 13-11-2009
    savvato



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    пробовал не помагает, при копировании ошибка: Не возможно выполнить операцию с открытой пользователем сопоставленной секцией.

    Всего записей: 52 | Зарегистр. 09-05-2009 | Отправлено: 14:07 13-11-2009 | Исправлено: savvato, 14:12 13-11-2009
    SANIOK_AV



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

    Цитата:
    в папке WINDOWS\Tasks задания - это файлы *.job (посмотри far'om например)

    ну а как запустить эти файлы *.job ?

    Всего записей: 485 | Зарегистр. 31-03-2009 | Отправлено: 15:53 13-11-2009
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    я писал
    Цитата:
    Добавлено:  
    wolf0425  
     
    Цитата:for /f "delims=" %%A in ('dir /b /a-d C:\test\*.txt') do call:_1 %%A  
     
    а почему можно использовать семантику /a-d , а не /a:-d ?  
    DIR [диск:][путь][имя_файла] [/A[[:]атрибуты]]

    мне king_stiven дал развернутый ответ
    Цитата:
    mugil_cephalus  
    /a [[:] атрибуты]  
    Выводит имена только тех файлов и каталогов, которые имеют указанные атрибуты. Если параметр /a не указан, команда dir выводит имена всех файлов, за исключением системных и скрытых. Если параметр /a указан без атрибутов, команда dir выводит имена всех файлов, включая скрытые и системные. Ниже приведен список значений, которые могут быть использованы при задании параметра атрибуты. Двоеточие (: ) является необязательным.
    и я решил восользоваться случаем
    Цитата:
    king_stiven  
     
    Цитата:Если параметр /a указан без атрибутов, команда dir выводит имена всех файлов, включая скрытые и системные.  
     
    то есть, если /a без атрибутов, то получу все-все файлы? и файлы, и папки (directories), и hide, и sys, и read, и archive, и без атрибутов? то есть таким способом (меня давно этот вопрос интересовал, просто пока не задавал его на форуме) можно вывести АБСОЛЮТНО весь list каталога, даже то, чего explorer иначе показывает (list of temporary inet files, например)?

     
    поэтому у меня к тебе вопрос (еще раз воспользуюсь случаем ) - мне нужен код, который бы выводил список ВСЕГО-ВСЕГО, что есть в каталоге "N": и файлы, и папки (directories), и hide-файлы, и sys-файлы, и read-файлы, и archive-файлы, и без атрибутов-файлы, и hide-каталоги, и sys-каталоги, и read-каталоги, и archive-каталоги, и без атрибутов-каталоги, и с крякозябрами в именах, и с учетом, что в каталоге "N" могут быть файлы с нэймингом на латинице и кириллице, и чтоб при ошибке (допустим длинное имя) - не останавливался, а писал: "error" и продолжал работать (как на VBS: On Error Resume Next), и при этом был насколько возможно коротким, - чтоб его можно было использовать внутри скриптовых конструкциий, например, for. И при всем при этом я не могу его сам составлять, т.к. методом тестирования - не подходит, мне нужна 100%-ная уверенность (естественно, относительно) в его отработке - что он не пропускает наличиствующие субдиректории/файлы - потому что могут со временем обнаружиться "подводные камни" (если я стал бы действовать по методе самостоятельных проб и ошибок), - как сегодня-вчера в ситуации с "пустой" строкой / CRLF.
     
    Добавлено:
    SANIOK_AV

    Цитата:
    ну а как запустить эти файлы *.job ?  

    а чем SCHTASKS не подходит?
    в чем конкретно проблема?

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 19:41 13-11-2009 | Исправлено: mugil_cephalus, 19:46 13-11-2009
    SANIOK_AV



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

    Цитата:
    в чем конкретно проблема?

    ну говорю же:
    Запускаю пакетный файл 1.bat  с правами пользователя admin
    (система загружена под другим пользователем):  

    Код:
    SCHTASKS /CREATE /RU admin /RP 123456 /SC once /TN zadanie /TR d:\1.bat /ST 00:00:00  
    SCHTASKS /RUN /TN zadanie
     
    проблема: я не вижу в данном случае cmd-шное окно пакетного файла 1.bat (видимо потому что это задание выполняется под пользователем admin)

    Всего записей: 485 | Зарегистр. 31-03-2009 | Отправлено: 20:42 13-11-2009
       

    Страницы: 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 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7
    vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru