Lastern Опубликовано 22 сентября, 2010 Жалоба Поделиться Опубликовано 22 сентября, 2010 в Windows Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 25 сентября, 2010 Жалоба Поделиться Опубликовано 25 сентября, 2010 Как подсчитать количество файлов в папке?... (получить надо только число)... надо из командной строки... dir не подходит, потому что выводится еще и список всех файлов Lastern: не знаю, чем тебе так не угодила эта команда, но с ее помощью все делается на ура: setlocal enabledelayedexpansionecho offset ddd= & for %%i in ("полный_путь_к__нужной_папке\*.*") do set /a ddd=!ddd!+1echo !ddd! 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Leon-Killer22 Опубликовано 23 марта, 2011 Жалоба Поделиться Опубликовано 23 марта, 2011 Приветствую всех! У меня возникла проблема с добавлением значений в реестр из bat-файла. Ситуация следующая - для игры в WarCraft3 на серверах нужно в реестре прописать значения типом "REG_MULTI_SZ". При просмотре значения в стандартном "REGEDIT" я вижу строчные значения: 100101war3.alkar.net-1Alkar Teleport Warcraft 3 server При экспорте нужного значения в REG-файле следующее: REGEDIT4[HKEY_CURRENT_USER\Software\Blizzard Entertainment][HKEY_CURRENT_USER\Software\Blizzard Entertainment\Warcraft III]"Battle.net Gateways"=hex(7):31,30,30,31,00,30,31,00,77,61,72,33,2e,61,6c,6b,\ 61,72,2e,6e,65,74,00,2d,31,00,41,6c,6b,61,72,20,54,65,6c,65,70,6f,72,74,20,\ 57,61,72,63,72,61,66,74,20,33,20,73,65,72,76,65,72,00,00 Пытаюсь всячески добавить ту же информацию в реестр при помощи созданного BAT-файла, но вместо строк получаю набор этих же цифр: REG ADD "HKCU\Software\Blizzard Entertainment\Warcraft III" /v "Battle.net Gateways" /t REG_MULTI_SZ /d "31,00,30,00,30,00,31,00,00,00,30,00,31,00,00,00,\77,00,61,00,72,00,33,00,2e,00,61,00,6c,00,6b,00,61,00,72,00,2e,00,6e,00,65,\00,74,00,00,00,2d,00,31,00,00,00,41,00,6c,00,6b,00,61,00,72,00,20,00,54,00,\65,00,6c,00,65,00,70,00,6f,00,72,00,74,00,20,00,57,00,61,00,72,00,63,00,72,\00,61,00,66,00,74,00,20,00,33,00,20,00,73,00,65,00,72,00,76,00,65,00,72,00,\00,00,00,00" /f Убирал "/", вставлял ключ с разделителем "/S ,", пробовал вообще слитно. Ничего не понимаю, к сожалению. В интернете, если честно, не смог найти внятного про строчные параметры. У кого-то есть мысли, как воплотить задуманное в код? :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Saule Опубликовано 23 марта, 2011 Жалоба Поделиться Опубликовано 23 марта, 2011 как воплотить задуманное? REG ADD "HKCU\Software\Blizzard Entertainment\Warcraft III" /v "Battle.net Gateways" /t REG_MULTI_SZ /d "1001\001\0war3.alkar.net\0-1\0Alkar Teleport Warcraft 3 server\0" /f \0 - это разделитель строк (признак окончания строки) 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Leon-Killer22 Опубликовано 13 июля, 2011 Жалоба Поделиться Опубликовано 13 июля, 2011 И снова здравствуйте! У меня очередная проблема, с которой борюсь почти 2 недели с переменным успехом... Есть необходимость архивации при помощи 7-zip определённых папок из сети - это базы данных (БД) 1С. В принципе, всё работает, архивы создаются именно так, как нужно, за исключением одного досадного момента - некоторые из этих файлов заблокированы процессом. Дело в том, что не все юзеры выключают 1С, к тому же происходит обмен данными с другими БД на нескольких серверах, поэтому отключать процессы 1С на тех серверах - тоже не резон. Есть служба Windows VSS (Volume Shadow Copy Service), но я, честно говоря, не знаю, как её прикрутить вместе с 7-zip... Ниже приведу пример одной из строк архивации: "C:\Program Files\7-Zip\7z.exe" a -t7z -mx7 "W:\AdminSettings\backup\1C_Archive\buch\1C_BUCH_%MYDATE%_%local_time%.7z" "\\Pdc-new\hamaliadb\Buch\" Для некоторых файлов появляется следующее сообщение: \\Pdc-new\hamaliadb\Buch\1SACCS.DBF : Процесс не может получить доступ к файлу, так как этот файл занят другим процессом. Собственно, может ли кто-то подсказать, как эти файлы всё же заархивировать? Ссылка на комментарий Поделиться на другие сайты Поделиться
Dann Опубликовано 15 июля, 2011 Жалоба Поделиться Опубликовано 15 июля, 2011 У меня очередная проблема, с которой борюсь почти 2 недели с переменным успехом... Немного не понял, что именно требуется, поэтому уточню. Нужно заархивировароть файлы, которые находятся в залоченном состоянии? Файлов, которые используются программой на момент архивирования? Скип, пропуск таких файлов не годится? Ссылка на комментарий Поделиться на другие сайты Поделиться
Leon-Killer22 Опубликовано 16 июля, 2011 Жалоба Поделиться Опубликовано 16 июля, 2011 Немного не понял, что именно требуется, поэтому уточню. Нужно заархивировароть файлы, которые находятся в залоченном состоянии? Файлов, которые используются программой на момент архивирования? Скип, пропуск таких файлов не годится? Прошу простить, если непонятно изложил... Мне необходимо заархивировать файлы, которые используются программой на момент архивирования. Пропуск этих файлов крайне нежелателен. Ссылка на комментарий Поделиться на другие сайты Поделиться
Dann Опубликовано 16 июля, 2011 Жалоба Поделиться Опубликовано 16 июля, 2011 Мне необходимо заархивировать файлы, которые используются программой на момент архивирования. Пропуск этих файлов крайне нежелателен. Теперь точно понял. А если попробовать их скопировать сначала в какое-нибудь другое место и архивировать уже оттуда? Возможно и копироваться не будут. Надо попробовать. Если не будут копироваться, то боюсь, что командными программами с обычными правами этого не сделать. Нужна не юзер-модная программа, а что-нибудь с драйвером например, чтобы был доступ ниже. А так будет приоритетнее тот, кто использует. Ссылка на комментарий Поделиться на другие сайты Поделиться
Leon-Killer22 Опубликовано 16 июля, 2011 Жалоба Поделиться Опубликовано 16 июля, 2011 Теперь точно понял. А если попробовать их скопировать сначала в какое-нибудь другое место и архивировать уже оттуда? Возможно и копироваться не будут. Надо попробовать. Если не будут копироваться, то боюсь, что командными программами с обычными правами этого не сделать. Нужна не юзер-модная программа, а что-нибудь с драйвером например, чтобы был доступ ниже. А так будет приоритетнее тот, кто использует. Спасибо за совет - действительно уже начал подумывать над предварительным копированием... Вот только время архивирования вырастет раза в два, пожалуй. Там большие объёмы (общий объём копируемых фалов около 30 Гб) и само архивирование занимает в среднем 3 часа (+/- 10 минут). А по поводу программы - не имею предрассудков, просто люблю командную строку. Пробовал архивировать Comodo Backup, вот только последняя на данный момент версия 3.0171317.133 не понимает кириллицу в названиях папок/фалов и пишет вместо них бред. Кстати, у Комодо очень хорошо получилось заархивировать "занятый" файл. P.S. Я просмотрел некоторое количество программ, отдаю предпочтение бесплатным вариантам. Вот только большинство лишь копирует. А если архивы делает (тот же Комодо) - получается архивы в 2,5 раз больше, чем при архивировании в 7-zip (это, кстати, ещё один плюс для 7z). Ссылка на комментарий Поделиться на другие сайты Поделиться
Dann Опубликовано 16 июля, 2011 Жалоба Поделиться Опубликовано 16 июля, 2011 Кстати, у Комодо очень хорошо получилось заархивировать "занятый" файл. Да, это вот как раз потому что у Comodo Backup есть драйвер, который позволяет это делать. bdisk.sys, C.O.M.O.D.O. Disk Raw Access Filter, прямо в его описание и написано, что он как раз для прямого доступа к файлам. Тут дело не в 7-zip, а в том, что юзер-модным приложениям Windows просто не дает трогать обычными способами файлы, которые открыты на эксклюзивный доступ. Мне кажется что и скопировать не даст, но всё зависит от того как именно используются файлы 1SACCS.DBF. Если они открыты на эксклюзивный доступ, то только программой с драйвером, либо какой-то специфичной программой, которая специально позаботилась о таких ситуациях. Ссылка на комментарий Поделиться на другие сайты Поделиться
Dann Опубликовано 16 июля, 2011 Жалоба Поделиться Опубликовано 16 июля, 2011 Либо перед архивированием надо всё-таки завершать тот процесс, который эти файлы использует. Ссылка на комментарий Поделиться на другие сайты Поделиться
Leon-Killer22 Опубликовано 2 августа, 2011 Жалоба Поделиться Опубликовано 2 августа, 2011 (изменено) Похоже, решил эту проблему. Более детально прочёл мануалку к 7z и нашёл там параметр -ssw. Этот параметр как раз архивирует "занятые" файлы. Описание ниже: -ssw (Compress files open for writing) switchCompresses files open for writing by another applications. If this switch is not set, 7-zip doesn't include such files to archive. Syntax -ssw Example 7z a archive.7z -ssw *.txt compresses all *.txt files in current folder including files open for writing by another applications. Посмотрю завтра по логам архивирования на результат... Обновлено: Ура! Работает!!! Просто добавить ключ "-ssw" и будет счастье! Изменено 3 августа, 2011 пользователем Leon-Killer22 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Dann Опубликовано 3 августа, 2011 Жалоба Поделиться Опубликовано 3 августа, 2011 Более детально прочёл мануалку к 7z и нашёл там параметр -ssw. Этот параметр как раз архивирует "занятые" файлы. Но вот видите, значит товарищи позаботились о таких ситуациях. Молодцы. :) Ссылка на комментарий Поделиться на другие сайты Поделиться
MAKAPOHHuK Опубликовано 14 декабря, 2011 Жалоба Поделиться Опубликовано 14 декабря, 2011 всем привет) кто-нибудь может помочь написать код в командной строке, который по названию файла и диска, на котором он лежит, находил этот файл и выводил его на экран (txt-файл) Ссылка на комментарий Поделиться на другие сайты Поделиться
DJFlint Опубликовано 14 декабря, 2011 Жалоба Поделиться Опубликовано 14 декабря, 2011 Очень просто: Type %1 Ссылка на комментарий Поделиться на другие сайты Поделиться
MAKAPOHHuK Опубликовано 14 декабря, 2011 Жалоба Поделиться Опубликовано 14 декабря, 2011 я не знаю точно директорию где находится файл, я знаю только диск батник должен искать по диску и запускать файл, если найдет Ссылка на комментарий Поделиться на другие сайты Поделиться
DJFlint Опубликовано 15 декабря, 2011 Жалоба Поделиться Опубликовано 15 декабря, 2011 (изменено) forfiles /p %1 /s /m %2 /c "cmd /c type @file" Где %1 - имя диска, %2 - имя файла. Файл forfiles.exe поместить в папку \Windows\ forfiles.rar forfiles.rar Изменено 15 декабря, 2011 пользователем DJFlint Ссылка на комментарий Поделиться на другие сайты Поделиться
reclearerr Опубликовано 27 февраля, 2012 Жалоба Поделиться Опубликовано 27 февраля, 2012 Всем доброго дня, недавно созрела небольшая проблема. Дело в том, что я держу серверы по Minecraft и LineAge II в локальной сети. После запуска компьютера и серверов процессор достигает загрузки 100% где-то через трое суток работы. В .bat не шарю, потому и прошу помощи. Нужно: 1. создать таймер, который через 24 часа после начала отсчета выполнит команду 2; 2. влезть в уже запущенный батник minecraft-сервера (работает на Java), написать там команду "stop", дабы сервер отключился; 3. перезагрузить компьютер. Возможно ли воплотить все это в жизнь?) Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 27 февраля, 2012 Жалоба Поделиться Опубликовано 27 февраля, 2012 Всем доброго дня, недавно созрела небольшая проблема. Дело в том, что я держу серверы по Minecraft и LineAge II в локальной сети. После запуска компьютера и серверов процессор достигает загрузки 100% где-то через трое суток работы. В .bat не шарю, потому и прошу помощи. Нужно: 1. создать таймер, который через 24 часа после начала отсчета выполнит команду 2; 2. влезть в уже запущенный батник minecraft-сервера (работает на Java), написать там команду "stop", дабы сервер отключился; 3. перезагрузить компьютер. Возможно ли воплотить все это в жизнь?) 1 и 3 да, а 2 нет, т.е. средствами bat-файла (без извращений) Ссылка на комментарий Поделиться на другие сайты Поделиться
Leon-Killer22 Опубликовано 9 апреля, 2012 Жалоба Поделиться Опубликовано 9 апреля, 2012 Доброго времени суток! Есть необходимость на машине с ОС Виндоус заархивировать все файлы в папке отдельным архивом при помощи программы 7-ZIP из командной строки (BAT-файл). Сама команда архивирования имеется, вот только как заставить её архивировать всё по отдельности, а не скопом? Спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 9 апреля, 2012 Жалоба Поделиться Опубликовано 9 апреля, 2012 Что такое "архивировать по отдельности, а не скопом" ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Teddy_Bear Опубликовано 9 апреля, 2012 Жалоба Поделиться Опубликовано 9 апреля, 2012 (изменено) Предположим, файлы в папке D:\1 тогда строка в батнике FOR /D %%f IN (D:\1\*.*) DO 7z.exe a %%f.7z %%f Упакует субкаталоги в этой папке в отдельные архивы /D - это ключ для цикла, а не диск. Без ключа упакует файлы, каждый в свой архив. FOR %%f IN (D:\1\*.*) DO 7z.exe a %%f.7z %%f Изменено 9 апреля, 2012 пользователем Teddy_Bear 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Leon-Killer22 Опубликовано 10 апреля, 2012 Жалоба Поделиться Опубликовано 10 апреля, 2012 Предположим, файлы в папке D:\1 тогда строка в батнике FOR /D %%f IN (D:\1\*.*) DO 7z.exe a %%f.7z %%f Упакует субкаталоги в этой папке в отдельные архивы /D - это ключ для цикла, а не диск. Без ключа упакует файлы, каждый в свой архив. FOR %%f IN (D:\1\*.*) DO 7z.exe a %%f.7z %%f Спасибо огромное! Получилось! Что такое "архивировать по отдельности, а не скопом" ? Имеется в виду архивация каждого файла в отдельный архив, а не все файлы в один архив. Ссылка на комментарий Поделиться на другие сайты Поделиться
THE OLD VERMIN Опубликовано 30 апреля, 2012 Жалоба Поделиться Опубликовано 30 апреля, 2012 dir /a:-d /b > list.txt bat-файл с данной строкой создает текстовый документ listdir той директории, в которой он находится. Составление списка файлов происходит по алфавиту. Возможно ли изменить порядок сортировки, например, изменение по времени? Ссылка на комментарий Поделиться на другие сайты Поделиться
DJFlint Опубликовано 30 апреля, 2012 Жалоба Поделиться Опубликовано 30 апреля, 2012 /o [[:]порядок_сортировки] Управление порядком сортировки и вывода имен файлов и каталогов командой dir. Если параметр /o, не задан, команда dir выводит имена в том порядке, в котором они записаны в каталоге. Если параметр /o использован без параметра порядок_сортировки, команда dir выводит имена каталогов в алфавитном порядке, затем — имена файлов в алфавитном порядке. Двоеточие является необязательным. Ниже приведен список значений, которые могут быть использованы при задании параметра порядок_сортировки. Допускается использование любого их сочетания без пробелов между ними. -n Сортировка по именам в алфавитном порядке -e Сортировка по расширениям в алфавитном порядке -d Сортировка по дате и времени от ранних к поздним -s Сортировка по размеру от меньших к большим -g Сортировка с группированием каталогов перед файлами -n Сортировка по именам в обратном алфавитном порядке (от Z к A) -e Сортировка по расширению в обратном алфавитном порядке (от .ZZZ к .AAA) -d Сортировка по дате и времени от поздних к ранним -s Сортировка по размеру от больших к меньшим -g Сортировка с группировкой каталогов после файлов 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения