spart Опубликовано 11 марта, 2009 Жалоба Поделиться Опубликовано 11 марта, 2009 Всем привет! Нужен батничик что бы все файлы в папке переименовывал. В новом имени файла оставались только цифры. Например: asd123e456.txt -> 123456.txt у кого есть какие соображения? Ссылка на комментарий Поделиться на другие сайты Поделиться
greylynx Опубликовано 11 марта, 2009 Жалоба Поделиться Опубликовано 11 марта, 2009 Добрый день. Ситуация следующая: на удаленном ПК выполняется программа, которая прописывает в определенной папке логи своей работы. Логам присваиваются имена по типу 13.02.2009_название объекта_лог.ivl 05.02.2009_название объекта_лог.ivl 29.01.2009_название объекта_лог.ivl Нужно организовать отсылку этих логов на ftp. Это я пробовал сделать так: из батника, который выполнял загрузку данных с сервера на удаленную машину некоторых данных с помощью wget запускался: ftp -s:command , в котором прописано: open такой-то фтп username userpassword cd хочу положить лог по этому пути на сервере lcd \ lcd logs send *.ivl bye Отсылка лога удавалась, но отсылается всегда файл, который при сортировке по имени будет первым, т.е. в данном случае это 05.02.2009_название объекта_лог.ivl, а нужен файлик последний измененный. Подскажите как реализовать, пожалуйста. ЗЫ: я думал, что send *.ivl будет отправлять все файлы с таким расширением на сервер. Это не так. Можно ли организовать отправку всех файлов с таким расширением на сервер, но при этом, чтобы не переписывались файлы, которые уже там есть? Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 11 марта, 2009 Жалоба Поделиться Опубликовано 11 марта, 2009 greylynx: Можно ли организовать отправку всех файлов с таким расширением на сервер Можно, только файл команд будет выглядеть так: open такой-то фтп username userpassword cd хочу положить лог по этому пути на сервере lcd \ lcd logs prompt mput *.ivl quit тогда будут все отсылаться. но при этом, чтобы не переписывались файлы, которые уже там есть? если на ftp уже есть файлы с такими же именами, они перепишутся - этого не изменишь. Выходов два: класть файлы на фтп в разные каталоги или переименовывать перед заливкой. Файлы с разными именами само собой не изменятся. spart: комбинация цифр и букв в имени подчинена какой-то маске или же они будут тасоваться совершенно произвольно? Ссылка на комментарий Поделиться на другие сайты Поделиться
greylynx Опубликовано 12 марта, 2009 Жалоба Поделиться Опубликовано 12 марта, 2009 Спасибо за оперативный ответ. Предполагал что так и надо, только не был уверен :) Уточню ситуацию: логи пишутся программой на протяжении некоторого времени, с момента первого запуска программы после последней загрузки данных с фтп. В основном, промежуток между закачками - 7 дней, но он может составлять и другой отрезок времени(тут непредсказуемо когда понадобится обновлять информацию). И логам присваивается имя: Первый запуск программы после закачки информации_Название объекта_лог.ivl т.е. , например, 05.02.2009_название объекта_лог.ivl - изменяется только дата Ну, и соответсятвенно нужно предыдущий лог выложить на сервер. Можно ли перед отправкой организовать удаление в корзину содержимого папки с этими логами, оставив файлы за последние 14 дней? Ссылка на комментарий Поделиться на другие сайты Поделиться
greylynx Опубликовано 12 марта, 2009 Жалоба Поделиться Опубликовано 12 марта, 2009 Еще вопрос: эти все действия ведь можно заменить перемещением файлов? Это было бы даже лучше, чем копирование файла на сервер, и отпадает надобность организовывать удаление старых файлов. Пробовал move - недопустимая команда. Ссылка на комментарий Поделиться на другие сайты Поделиться
spart Опубликовано 13 марта, 2009 Жалоба Поделиться Опубликовано 13 марта, 2009 Maikll: комбинации можно определить по 2 маскам но лучше при любой комбинации т.к. этот файл формирует пользователь Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 13 марта, 2009 Жалоба Поделиться Опубликовано 13 марта, 2009 Можно ли перед отправкой организовать удаление в корзину содержимого папки с этими логами, оставив файлы за последние 14 дней? Еще вопрос: эти все действия ведь можно заменить перемещением файлов? Это было бы даже лучше, чем копирование файла на сервер, и отпадает надобность организовывать удаление старых файлов. Пробовал move - недопустимая команда. Перемещать файлы на ftp нельзя. Я бы в таком случае порекомендовал просто удалять логи после отправки, тогда не придется контролировать их дату создания. Но если по каким-то причинам этого делать нельзя, удалить все логи старше 14 дней можно с помощью внешней утилиты forfiles, такой командой forfiles /M *.ivl /D -14 /C "cmd /c del /Q @file" spart: при таком условии средствами батников практически нереализуемо, проще программу написать. Ссылка на комментарий Поделиться на другие сайты Поделиться
spart Опубликовано 15 марта, 2009 Жалоба Поделиться Опубликовано 15 марта, 2009 spart: при таком условии средствами батников практически нереализуемо, проще программу написать. А вырвать символы с названия файла по маске возможно реализовать в bat файле? Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 15 марта, 2009 Жалоба Поделиться Опубликовано 15 марта, 2009 spart: да, можно. К примеру, в новом имени будут только 1, 2...n символы из старого и т.п. что-то подобное уже делалось тут Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 25 марта, 2009 Жалоба Поделиться Опубликовано 25 марта, 2009 Я тут читал вашу историю про кавычки в батниках .... страница намбер 3-4. У меня аналогичная проблемка, хотя её можно решить посредством ярлыков, но я сунулся писать батник и понеслось.... cd /D "C:\Documents and Settings\SASA\Мои документы\EA Games\The Sims 2"del /Q "C:\Documents and Settings\SASA\Мои документы\EA Games\The Sims 2\*.cache"cd /D "C:\Program Files\EA Games\The Sims 2 Сады и особняки Каталог\TSBin"start "C:\Program Files\EA Games\The Sims 2 Сады и особняки Каталог\TSBin\Sims2Launcher.exe" Народ помогите дети плачут.... симсы не стартуют :blush2: А точнее я не врубаюсь что я не так пишу.... Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 25 марта, 2009 Жалоба Поделиться Опубликовано 25 марта, 2009 После извратов я понял проблема из за Мои документы и остальных русских названий.... их что на переменные заменить? Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 25 марта, 2009 Жалоба Поделиться Опубликовано 25 марта, 2009 Indomito: У команды start в кавычки заключается не весь путь к файлу, а имена каждого каталога по отдельности, то есть ее надо записать так: start C:\"Program Files"\"EA Games"\"The Sims 2 Сады и особняки Каталог"\TSBin\Sims2Launcher.exe Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 25 марта, 2009 Жалоба Поделиться Опубликовано 25 марта, 2009 (изменено) Тролль: понимаешь, даже команда DEL не работает... вот скрин C:\Documents and Settings\SASA\Рабочий стол>C: C:\Documents and Settings\SASA\Рабочий стол>cd \ C:\>set sasax=C:\Documents and Settings\SASA\╠юш фюъєьхэЄ√\EA Games\The Sims 2 C:\>pause Для продолжения нажмите любую клавишу . . . C:\>del /Q "C:\Documents and Settings\SASA\╠юш фюъєьхэЄ√\EA Games\The Sims 2"\*. cache Системе не удается найти указанный путь. C:\>pause Для продолжения нажмите любую клавишу . . . это при коде C:cd \set sasax=C:\Documents and Settings\SASA\Мои документы\EA Games\The Sims 2pausedel /Q "%sasax%"\*.cachepauseC:cd /d "C:\Program Files\EA Games\The Sims 2 Сады и особняки Каталог\TSBin"pausestart "C:\Program Files\EA Games\The Sims 2 Сады и особняки Каталог\TSBin\Sims2Launcher.exe" может кодовую страницу переключить? Те дело до "START" и не доходит.... путь не найден и всё... Изменено 25 марта, 2009 пользователем Indomito Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 25 марта, 2009 Жалоба Поделиться Опубликовано 25 марта, 2009 Проблема кажется заключается в редакторе те, батник нужно сохранять в кодировке DOS866 и хотя у меня стоит BRED2... такой кодировки там нет.... странно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 25 марта, 2009 Жалоба Поделиться Опубликовано 25 марта, 2009 (изменено) Да, похоже, проблема в кодировке. Попробуй использовать Блокнот и поставить в начале батника команду chcp 1251 Изменено 25 марта, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 25 марта, 2009 Жалоба Поделиться Опубликовано 25 марта, 2009 Использовал WordPad записал в кодировке DOS и получил C:\Documents and Settings\SASA\Рабочий стол>C: C:\Documents and Settings\SASA\Рабочий стол>cd \ C:\>set sasax=C:\Documents and Settings\SASA\Мои документы\EA Games\The Sims 2 C:\>pause Для продолжения нажмите любую клавишу . . . C:\>del /Q "C:\Documents and Settings\SASA\Мои документы\EA Games\The Sims 2"\*. cache Не удается найти C:\Documents and Settings\SASA\Мои документы\EA Games\The Sims 2\*.cache C:\>pause Для продолжения нажмите любую клавишу . . . C:\>C: C:\>cd /d "C:\Program Files\EA Games\The Sims 2 Сады и особняки Каталог\TSBin" C:\Program Files\EA Games\The Sims 2 Сады и особняки Каталог\TSBin>pause Для продолжения нажмите любую клавишу . . . дальше технические проблемы с запуском, надеюсь что пути я "уговорил" :blush2: Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 25 марта, 2009 Жалоба Поделиться Опубликовано 25 марта, 2009 (изменено) Вот рабочий вариант может кому и пригодится ;) C:cd \CD C:\"Documents and Settings"\SASA\"Мои документы"\"EA Games"\"The Sims 2"del /Q C:\"Documents and Settings"\SASA\"Мои документы"\"EA Games"\"The Sims 2"\*.cacheC:cd \cd C:\"Program Files"\"EA Games"\"The Sims 2 Сады и особняки Каталог"\TSBinstart Sims2Launcher.exe :blush2: Изменено 25 марта, 2009 пользователем Indomito Ссылка на комментарий Поделиться на другие сайты Поделиться
Форматцевт Опубликовано 25 марта, 2009 Жалоба Поделиться Опубликовано 25 марта, 2009 (изменено) И окончательно set NAMELOC=SASApauseecho %NAMELOC%C:cd \CD C:\"Documents and Settings"\%NAMELOC%\"Мои документы"\"EA Games"\"The Sims 2"del /Q C:\"Documents and Settings"\%NAMELOC%\"Мои документы"\"EA Games"\"The Sims 2"\*.cacheC:cd \cd C:\"Program Files"\"EA Games"\"The Sims 2 Сады и особняки Каталог"\TSBinstart Sims2Launcher.exe Хотя вот так лучше.... подскажите откуда извлечь имя пользователя текущего, его нет в станд. переменных, но метод должен быть. Я понимаю что имя где то в реестре, но как его записать в батник, а? ......... Сорри уже нашел это %username% тогда получаем C:cd \CD C:\"Documents and Settings"\%username%\"Мои документы"\"EA Games"\"The Sims 2"del /Q C:\"Documents and Settings"\%username%\"Мои документы"\"EA Games"\"The Sims 2"\*.cacheC:cd \cd C:\"Program Files"\"EA Games"\"The Sims 2 Сады и особняки Каталог"\TSBinstart Sims2Launcher.exe Изменено 25 марта, 2009 пользователем Indomito Ссылка на комментарий Поделиться на другие сайты Поделиться
greylynx Опубликовано 1 апреля, 2009 Жалоба Поделиться Опубликовано 1 апреля, 2009 Maikll, спасибо. Решил сделать все-же иначе немного(суть от этого не поменялась): создал отдельный батник, который выполняется раз в 7 дней, в котором прописано: tskill процесс который пишет логи ftp -s:sendlog copy d:\Logs\*.* d:\oldlogs del/q d:\Logs\*.* d:\процесс который пишет логи А сам sendlog вот такой: open такой-то фтп с таким логином и паролем cd путь на фтп, по которому копируются логи lcd \ lcd logs prompt mput *.ivl bye Все оказалось очень просто :) , спасибо за помощь. forfiles взял на заметку Ссылка на комментарий Поделиться на другие сайты Поделиться
greylynx Опубликовано 7 апреля, 2009 Жалоба Поделиться Опубликовано 7 апреля, 2009 Появилось еще несколько вопросов: 1) можно ли средствами командной строки произвести безопасное извлечение сменного носителя информации?(флешки) Чтобы было понятней: хотелось бы, чтобы я мог вставить флешку в порт, при срабатывании автозапуска выполнялся некоторый батник, и, после того как он отработался, флешка была безопасно извлечена из системы(тут загвоздка в том, чтобы не подтверждать это безопасное извлечение). Кстати, если не трудно, разъясните с автораном(это, правда, не совсем по теме, скорее всего): если у меня на флешке autorun.inf, в котором прописано [Autorun] Open=autorun.bat то он(autorun.bat) автоматически не отрабатывается, он отрабатывается, только если в контекстной менюшке выбрать"автозапуск". Можно ли назначить автоматический запуск autorun.bat(без лишних кликов мышкой). Либо же каким-то образом организовать запуск батника D:\123456.bat , если в системе определяется сменный носитель е:\ ? Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 7 апреля, 2009 Жалоба Поделиться Опубликовано 7 апреля, 2009 можно ли средствами командной строки произвести безопасное извлечение сменного носителя информации?(флешки) Можно произвести отключение с помощью devcon, хотя насчет насколько оно будет "безопасным" я затрудняюсь сказать т.к. контроля, используется ли диск в данный момент при этом не происходит. хотелось бы, чтобы я мог вставить флешку в порт, при срабатывании автозапуска выполнялся некоторый батник, и, после того как он отработался, флешка была безопасно извлечена из системы Отключать флешку программой, выполняемой с самой флешки - это конечно мысль интересная. Но сомнительно, чтобы ее можно было реализовать корректно практически. Кстати, если не трудно, разъясните с автораном autorun.inf, подробный хелп Можно ли назначить автоматический запуск autorun.bat(без лишних кликов мышкой). Можно, см хелп. Только если в системе не отключен автозапуск флешек. Либо же каким-то образом организовать запуск батника D:\123456.bat , если в системе определяется сменный носитель е:\ ? Для этого нужно, чтобы задача висела в памяти резидентно, отслеживая подключение диска. Средствами командной строки делать такое невыгодно, проще будет воспользоваться скриптовыми планировщиками, к примеру nncron Ссылка на комментарий Поделиться на другие сайты Поделиться
greylynx Опубликовано 8 апреля, 2009 Жалоба Поделиться Опубликовано 8 апреля, 2009 Спасибо. Посмотрел devcon... Безопасно извлечь не получается, можно только отключить USB-концентраторы(все либо по ID), но если система не отпускает флешку(я имею ввиду случай, когда выводится окно с сосбщением, что "оборудование не может быть отключено прямо сейчас"), то и соответствующий концентратор не отключается... В общем пришел к выводу, что легче дописать shutdown -s Ссылка на комментарий Поделиться на другие сайты Поделиться
greylynx Опубликовано 8 апреля, 2009 Жалоба Поделиться Опубликовано 8 апреля, 2009 :) недописаное сообщение случайно отправил java script:emoticon('', 'smid_8') Мдя... я не совсем правильно (точнее совсем неправильно) описал, то, чего добиваюсь. Попробую еще раз. На флешке есть файл autorun.inf, в котором я пытался назначить автозапуск батника autorun.bat: [Autorun] Open=autorun.bat , он же, в свою очередь запускает батник Zalivka.bat(этот выполняет операции копирования с флешки на машину, и с машины на флешку, после чего выключает компьютер - тут ранее предполагалось безопасное извлечение флешки ) на машине и записывает лог его выполнения : set %DATE% D:\Zalivka.bat >e:\1_Zalivka_new\Logs\имя объекта_"%DATE%".txt Вроде бы так. Так вот теперь не получается назначить выполнение того самого autorun.bat. Если его руками запускать - отрабатывается, а с автозапуском ничего не вышло... где я не досмотрел? Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 8 апреля, 2009 Жалоба Поделиться Опубликовано 8 апреля, 2009 Посмотрел devcon... Безопасно извлечь не получается, можно только отключить USB-концентраторы(все либо по ID), но если система не отпускает флешку(я имею ввиду случай, когда выводится окно с сосбщением, что "оборудование не может быть отключено прямо сейчас"), то и соответствующий концентратор не отключается... В общем пришел к выводу, что легче дописать shutdown -s Ну во-первых, для отключения флешки вовсе не обязательно отключать концентраторы. Все делается гораздо проще, нужно только знать уникальный id флешки. Заходим в диспетчер устройств, находим флешку в разделе Контроллеры универсальной последовательной шины, заходим в свойства, вкладка Сведения, из выпадающего списка Коды (ID) оборудования - получаем на выбор несколько кодов для нашего устройства, можно воспользоваться любым. Затем несложной командой devcon remove "id-код" спокойно отключаем именно эту флешку, не затрагивая остальные устройства. Но скажу честно, особого смысла в отключении флешки программно (как и shutdown -s для этого ) я не вижу. Компьютеры еще не настолько интелектуальны, чтобы по команде флешка сама выскакивала из порта, а значит это делать придется руками. Со всеми вытекающими. На флешке есть файл autorun.inf, в котором я пытался назначить автозапуск батника autorun.bat:......Вроде бы так. Так вот теперь не получается назначить выполнение того самого autorun.bat. Если его руками запускать - отрабатывается, а с автозапуском ничего не вышло... где я не досмотрел? Это будет работать только если в ОС не отключен автозапуск для флешек, а это как раз зачастую и сделано для предотвращения проникновения вирусов. Если при подключении флешки не отображается стандартный диалог автоплея, то и если прописать действие в autorun.inf, - тоже ничего не выйдет. З.Ы. если число компьютеров, на которых надо выполнять эти действия невелико- проще мониторить подеключение устройства с таким id средствами того же nncron и при подключении запускать на выполнение батник. Ссылка на комментарий Поделиться на другие сайты Поделиться
greylynx Опубликовано 9 апреля, 2009 Жалоба Поделиться Опубликовано 9 апреля, 2009 Насчет отключения конкретной флешки по id - я понял, но сложность в моем случае заключается в том, что батник, который будет выполнять действие извлечения будет находиться на ПК, который будут использовать разные люди, флешки у них могут меняться(выходить из строя, забывать конкретную флешку), соответственно мне придется каждый раз переписывать батник+к этому надо еще и флешку человека иметь непосредственно у себя... так что легче человеку будет включить ПК после заливки информации (пока нет требований к беспрерывной работе). Автозапуск на машинах не отключен, менюшка "Автоплей" выпадает, но, тем не менее, автозапуск батника не производится... не могу понять что я неправильно делаю... возможно для автозапуска нужно, чтобы файл имел расширение .ехе???(но об этом ничего не указано, и в примерах .txt). Вопрос: Icon - не обязательный параметр? Он служит только для визуализации содержимого и все?(ну, я так понимаю). Машин таких пока около 30(а вообще по Украине до 80), разбросаны по всему Киеву.... Пока для меня самый лучший вариант - чтобы сработал автозапуск, отработался батник, выключилась машина и человек ее вручную включил. Это сведет к минимуму человеческий фактор и количество необходимого оборудования и устройств(человеку-то надо только вставить флешку, подождать пока выключится ПК, вытащить флешку и включить ПК...) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения