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

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



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

    Всего записей: 389 | Зарегистр. 08-06-2006 | Отправлено: 15:56 13-01-2010
    maa78s

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет!
    Подскажите, пожалуйста, как мне организовать вывод в лог те имена файлов, которые находятся и в папке A и в папке B, т.е. проверку только по совпанению имен в двух папках.
    Сколько не пытаюсь сделать, не получается, ибо не силен в батниках )
    У меня в коде это сейчас прописано как:
     
    pushd "%Target%\"
    pushd "%Source%\"
    FOR /f "tokens=*" %%a IN ('dir /b /a-d') DO (
    copy "%%~dpnxa" "%Target%\"
    If Exist "%%a" (Echo %%a>>%~dp0log.txt)  
    )
     
    тут он выводит имена всех файлов с копируемой папки, а как вывести только совпадающие имена, не получается.
    Подскажите, как правильно сделать.

    Всего записей: 17 | Зарегистр. 10-07-2009 | Отправлено: 16:25 13-01-2010
    Pacho



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Craager
    Пожалуй, так будет лучше:

    Код:
    net stop spooler & net start spooler
    т.к. в предыдущем варианте, если служба уже остановлена до запуска скрипта, то её запуск не стартует.
    Пауза не нужна.

    Всего записей: 263 | Зарегистр. 02-04-2005 | Отправлено: 16:26 13-01-2010 | Исправлено: Pacho, 16:35 13-01-2010
    bormant



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

    Цитата:
    как мне организовать вывод в лог те имена файлов, которые находятся и в папке A и в папке B, т.е. проверку только по совпанению имен в двух папках
    Проверять нужно ДО копирования...

    Код:
    for %%f in ("%source%\*") do (
     if exist "%target%\%%~nxf" echo %%~ff >>%~dp0log.txt
     copy "%%f" "%target%\"
    )

    Всего записей: 107 | Зарегистр. 06-10-2003 | Отправлено: 17:10 13-01-2010 | Исправлено: bormant, 17:16 13-01-2010
    Craager



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pacho
    Спасибо! Теперь понятно всё.

    Всего записей: 389 | Зарегистр. 08-06-2006 | Отправлено: 17:32 13-01-2010
    wolf0425



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

    Цитата:
    а почему б не хранить один предыдущий?  
    какого один то? полсотни разных, сгенеренных из разных источников по списку проверки изменений.
    один то и хранил бы, чего мудрить то.

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 17:38 13-01-2010 | Исправлено: wolf0425, 17:42 13-01-2010
    maa78s

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

    Всего записей: 17 | Зарегистр. 10-07-2009 | Отправлено: 18:16 13-01-2010
    Pacho



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть ли возможность перенести базу файлов с одного диска на другой, сохранив жёсткие ссылки?
    Есть мысль утилитой HLScan сохранить лог-файл с информацией о файлах, связанных жесткими ссылками. Перенести все файлы на другой диск через файловый менеджер (естественно, жёсткие ссылки будут потеряны), а затем удалить лишние файлы, заменив их жёсткими ссылками, используя информацию из лога.
    HLScan создаёт лог вида:
    Подробнее...
    Помогите написать скрипт для создания жёстких ссылок!
    Или, может, я всё усложняю и есть способ проще?

    Всего записей: 263 | Зарегистр. 02-04-2005 | Отправлено: 18:32 13-01-2010
    mugil_cephalus

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pacho
    посм. fsutil hardlink
    или diskpart

    Всего записей: 1072 | Зарегистр. 07-09-2009 | Отправлено: 19:38 13-01-2010
    Pacho



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mugil_cephalus
    У меня проблема с обработкой лог-файла. Вот в логе есть:
    Код:
    ID: 0x1000000000268 - Hard Links Count: 2 - Missing: 0
      Creation Time: 07/04/2009 20:50:52
      Last Access Time: 07/04/2009 20:50:52
      <F:\Имя\файла\1>
      <F:\Имя\файла\2>
     
     
    ID: 0x10000000027f4 - Hard Links Count: 3 - Missing: 0
      Creation Time: 07/05/2009 13:03:50
      Last Access Time: 07/05/2009 13:03:50
      <F:\Имя\файла\1>
      <F:\Имя\файла\2>
      <F:\Имя\файла\3>

    Как мне получить из него?
    Код:
    del /f "G:\Имя\файла\2"
    fsutil hardlink create "G:\Имя\файла\2" "G:\Имя\файла\1"
     
    del /f "G:\Имя\файла\2"
    del /f "G:\Имя\файла\3"
    fsutil hardlink create "G:\Имя\файла\2" "G:\Имя\файла\1"
    fsutil hardlink create "G:\Имя\файла\3" "G:\Имя\файла\1"

    Кстати, как удалить файл, независимо от атрибутов? DEL с ключём /f удаляет файлы только для чтения; с ключами /f /a:h - только скрытые. А с ключами /f /a:rh - с атрибутами и скрытый и для чтения, но не скрытый или для чтения.

    Всего записей: 263 | Зарегистр. 02-04-2005 | Отправлено: 20:28 13-01-2010
    king_stiven

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

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 20:53 13-01-2010
    Pacho



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

    Цитата:
    папка с файлами?

    Да, папка, в которой 88059 файлов и 232 жёстких ссылки.

    Цитата:
    Сформулируй задачу на примере одного файла.

    Есть 2 файла, связанные жёсткой ссылкой:
    F:\Имя\файла\1
    F:\Имя\файла\2
    Переношу их на другой диск (жёсткая ссылка разрушается):
    G:\Имя\файла\1
    G:\Имя\файла\2
    Теперь надо удалить один из файлов и вместо него создать жёсткую ссылку. Пример лога с именами файлов, связанных ссылками, выше.

    Всего записей: 263 | Зарегистр. 02-04-2005 | Отправлено: 21:41 13-01-2010 | Исправлено: Pacho, 21:46 13-01-2010
    BVV63



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

    Цитата:
    DEL с ключём /f удаляет файлы только для чтения

    Del с ключём /f удалит файлы, ВКЛЮЧАЯ те, что только для чтения.

    Цитата:
    Кстати, как удалить файл, независимо от атрибутов?

    К примеру, используя команду attrib предварительно снять аттрибуты.

    Всего записей: 3542 | Зарегистр. 17-08-2009 | Отправлено: 07:43 14-01-2010
    zepterman

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

    Код:
     
    net use S: \\192.168.1.111\ /user:domain\admin
    start "" 1.exe
     

    подключение диска - системная ошибка 67 Не найдено сетевое имя.
     
    2 файл

    Код:
     
    no net use S: \\192.168.1.111\ /user:domain\admin
    TASKKILL /F /S 127.0.0.1 /U admin /P pass /IM 1.exe
     

    завершение процесса - работает

    Всего записей: 190 | Зарегистр. 27-04-2006 | Отправлено: 17:23 14-01-2010 | Исправлено: zepterman, 17:23 14-01-2010
    Kirillhome



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    zepterman
    1)
    net use S: \\192.168.1.111\Имя_шары /user:domain\admin  
     
    2)
    net use S: /DELETE
     
    (читаем NET USE /?)

    Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 19:30 14-01-2010
    Mr_Hat



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    zepterman
    net use \\comp\test
     
    итог  
     
    Состояние   Локальный  Удаленный                 Сеть
     
    -------------------------------------------------------------------------------
    OK                     \\192.168.88.131\test     Microsoft Windows Network
     
    только странно почему он не появляется в папке мой компьютер

    Всего записей: 985 | Зарегистр. 04-10-2005 | Отправлено: 20:18 14-01-2010 | Исправлено: Mr_Hat, 20:21 14-01-2010
    BorlandIMHO

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

    Цитата:
    странно почему он не появляется в папке мой компьютер

    Что ж тут странного?
    В "My Computer" появляются исключительно "замапленные" (с назначением буквы) сетевые диски...

    ----------
    http://www.imho.ws

    Всего записей: 2654 | Зарегистр. 12-10-2006 | Отправлено: 21:21 14-01-2010
    Mr_Hat



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

    Цитата:
    В "My Computer" появляются исключительно "замапленные" (с назначением буквы) сетевые диски...

    а как это сделать с помошью командной строки ?

    Всего записей: 985 | Зарегистр. 04-10-2005 | Отправлено: 21:31 14-01-2010
    BorlandIMHO

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    элементарно
    Цитата:
    net use \\comp\test  

    ->net use z: \\comp\test

    ----------
    http://www.imho.ws

    Всего записей: 2654 | Зарегистр. 12-10-2006 | Отправлено: 21:44 14-01-2010
    Mr_Hat



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BorlandIMHO
    хм..
    лог - команда net use z: \\comp\test -> Не найден сетевой путь.

    Всего записей: 985 | Зарегистр. 04-10-2005 | Отправлено: 22:32 14-01-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 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