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

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



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    bomzzz
    попробую что-нить сделать

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 12:19 14-09-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    http://forum.ru-board.com/topic.cgi?forum=62&topic=21297&start=260#17
    вот тута видишь он вообще без локала обошелся
     
    Добавлено:
    надо было наверно тоже создать временную папку и туда все перепаковать а потом назад вытащить. ну я уже счетчик не буду делать. у меня видишь строка заремарина я еще ее испытываю.

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 12:20 14-09-2010
    king_stiven

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

    Цитата:
    только он не файлы должен считать а файлы с одинаковыми именами и разными расширениями

    Приведи пример, исчерпывающий, с именами а не общими фразами.

    Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 12:41 14-09-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    вот картинка
    http://forum.ru-board.com/topic.cgi?forum=62&topic=21297&start=240#15
    вот описание
    http://forum.ru-board.com/topic.cgi?forum=62&topic=21297&start=200#20
    вот два рабочих кода
    http://forum.ru-board.com/topic.cgi?forum=62&topic=21297&start=280#18
    http://forum.ru-board.com/topic.cgi?forum=62&topic=21297&start=260#16
     
    уже не знаю куда подробнее
     
    Добавлено:
    файл SLYCHAINOEIMYA.ZIP его описание SLYCHAINOEIMYA.ZIP.TXT они должны очутиться в папке SLYCHAINOEIMYA

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 12:45 14-09-2010 | Исправлено: bomzzz, 12:47 14-09-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    bomzzz
    Держи без setlocal enabledelayedexpansion

    Код:
    @echo off
    set "indir=c:\2\"
    set "outdir=c:\1\"
    set "fnum="
    rem обрабатываем все кроме файлов *.txt
    call :work ".txt"
    rem обрабатываем .txt
    call :work ".txt.txt"
    exit
     
    :work
    for /f "tokens=*" %%a in ('DIR /A-D /B /O:N %indir% ^| find /v "%~1" ') do (
        call :getdirname "%%~na"
        call md "%outdir%%%getdirname%%"
        2>nul call move "%indir%%%a" "%outdir%%%getdirname%%\"
        2>nul call move "%indir%%%a.txt" "%outdir%%%getdirname%%\"
    )
    exit /b
     
    rem Имя каталога в переменной !getdirname!
    :getdirname
    if not defined fnum (set "fnum=0" & set "getdirname=%~1") else (set /a "fnum+=1" & call set "getdirname=%~1-%%fnum%%")
    if exist "%outdir%%getdirname%\" (call :getdirname "%~1") else set "fnum="
    exit /b  

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 12:53 14-09-2010 | Исправлено: res2001, 12:56 14-09-2010
    bomzzz



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

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 12:55 14-09-2010
    res2001



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

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 12:56 14-09-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    работает но с таким именем обкакался %%%.txt . но файлы не затер просто не перенес
     
    Добавлено:
    может где то кавычки забыл???

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 12:59 14-09-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    bomzzz
    Зато с ! работает. А с % и будет обкакиваться постоянно. Как это обойти - х.з.
     
    Добавлено:
    % управляющий символ в батниках не зависимо от наличия setlocal enabledelayedexpansion.
    Разве что анализировать каждый символ имени файла и экранировать %.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 13:01 14-09-2010
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzzz
    Дано:
    папка без подпапок, в ней куча файлов
    Надо:
    файлы вида SLYCHAINOEIMYA.ZIP и SLYCHAINOEIMYA.ZIP.TXT переместить в папку SLYCHAINOEIMYA
    файлы вида SLYCHAINOEIMYA и SLYCHAINOEIMYA.TXT переместить в папку SLYCHAINOEIMYA
                                                                       ?

    Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 13:03 14-09-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    у мине с любыми знаками работает. ну может я какие то недогадался испытать
     
    Добавлено:
    файлы вида SLYCHAINOEIMYA и SLYCHAINOEIMYA.TXT переместить в папку SLYCHAINOEIMYA[1] естевтвенна. потому что имя уже занято. на картинке все виндо
     
    Добавлено:
     

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 13:04 14-09-2010 | Исправлено: bomzzz, 13:06 14-09-2010
    res2001



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

    Цитата:
    у мине с любыми знаками работает. ну может я какие то недогадался испытать  

    У тебя работает, потому что нет setов и подпрограмм.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 13:15 14-09-2010
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кстати, чем рисуются такие картинки?
    Дано:  
    папка без подпапок, в ней куча файлов  
    Надо:  
     
    файлы вида SLYCHAINOEIMYA и SLYCHAINOEIMYA.TXT переместить в папку SLYCHAINOEIMYA
    файлы вида SLYCHAINOEIMYA.abc и SLYCHAINOEIMYA.abc.TXT переместить в папку SLYCHAINOEIMYA[1]
                                               ...
    файлы вида SLYCHAINOEIMYA.xyz и SLYCHAINOEIMYA.xyz.TXT переместить в папку SLYCHAINOEIMYA[номер согласно счётчику от SLYCHAINOEIMYA.abc]
                                                              ?

    Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 13:17 14-09-2010 | Исправлено: king_stiven, 13:19 14-09-2010
    bomzzz



    Запрет на пост
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    да точно. без сета вообще обойтись не получица
     
    Добавлено:
    king_stiven
    ну да. а как еще. Даунлоад Мастер так файлы закачивает и создает файл описаний, но он не умеет распихивать это все по папкам, только групировать по типам файлов
     
    Добавлено:
    res2001
    http://downloadmaster.ru/forum/viewtopic.php?f=2&t=12727&p=43705#p43705
     
    Добавлено:
    res2001
    так на прочность я его уже хорошо испытал у меня тут уже больша группа файлов для испытаний и батники для создания описаний

    Всего записей: 13343 | Зарегистр. 13-01-2008 | Отправлено: 13:17 14-09-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    bomzzz
    Пока с процентами в имени справится не удается.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 13:47 14-09-2010
    king_stiven

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

    Всего записей: 2167 | Зарегистр. 17-07-2006 | Отправлено: 13:50 14-09-2010 | Исправлено: king_stiven, 17:43 14-09-2010
    res2001



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

    Код:
    @echo off
    set "indir=c:\2\"
    set "outdir=c:\1\"
    set "fnum="
    rem обрабатываем все кроме файлов *.txt
    call :work ".txt"
    rem обрабатываем .txt
    call :work ".txt.txt"
    exit
     
    :work
    for /f "tokens=*" %%a in ('DIR /A-D /B /O:N %indir% ^| find /v "%~1" ') do (
        set "getdirname=%%~na"
        set "fname=%%a"
        call :getdirname
        call md "%outdir%%%getdirname%%"
        2>nul call move "%indir%%%fname%%" "%outdir%%%getdirname%%\"
        2>nul call move "%indir%%%fname%%.txt" "%outdir%%%getdirname%%\"
    )
    exit /b
     
    rem Имя каталога в переменной %%getdirname%%
    :getdirname
    if not defined fnum (set "fnum=0" & call set "dname=%%getdirname%%") else (set /a "fnum+=1" & call set "dname=%%getdirname%%-%%fnum%%")
    if exist "%outdir%%dname%" (call :getdirname) else (set "fnum=" & call set "getdirname=%%dname%%" & set "dname=")
    exit /b

     
    Добавлено:
    поправил код
     
    Добавлено:
    Остальные символы по идее должен нормально проглатывать

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 14:00 14-09-2010 | Исправлено: res2001, 21:21 14-09-2010
    Alloran

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

    Цитата:
     
    а эти юзера залогинены в этот момент?  

    да.

    Цитата:
     
    и дело вообще где происходит - на терминальном сервере?  

     да.
     

    Цитата:
     
    что-то мне кажется, что уже запущенной 1С совершенно пофигу снос настроек в регистри, а вот у следующей 1С отобрать настройки можно попробовать.

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

    Всего записей: 5 | Зарегистр. 04-08-2007 | Отправлено: 14:08 14-09-2010 | Исправлено: Alloran, 14:09 14-09-2010
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Alloran
    как вариант - запускать в шедулере у юзера батник который по выставленному флагу (наличию файла с определенным именем в определенном месте) производит удаление ключа в реестре.
    Под админом просто создаешь файл флага.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 14:20 14-09-2010
    faithful



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

    Цитата:
    Нужно удалять ключи в HKCU _другого_ пользователя.  
    reg load не подойдет, ибо оно не позволяет подключить куст, если его владелец залогинен и файл используется..
     
    Или, как вариант, нуден способ запускать батники в терминальной сессии другого пользователя)  

    Так подойдет?

    Код:
    @echo off
    color 9F
     
    echo.y|reg export "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" "%~dpn0.reg" >nul 2>^&1
    for /f "tokens=7 delims=]\\" %%k in ('more %~dpn0.reg^| find "\S-"') do reg delete HKEY_USERS\%%k\Software\1C\1Cv7\7.7\Titles /f >nul 2>^&1


    Всего записей: 240 | Зарегистр. 09-09-2005 | Отправлено: 15:54 14-09-2010
       

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