Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Сканирование папки на файлы с определённым расширением

Ответить
Настройки темы
CMD/BAT - Сканирование папки на файлы с определённым расширением

Пользователь


Сообщения: 60
Благодарности: 2

Профиль | Отправить PM | Цитировать


Доброго дня!

Нужно написать скрипт, который будет постоянно сканировать папку на файлы с расширением .message. При их обнаружении нужно чтобы скрипт считал название файла без расширения и присвоил этому названию переменную %user%, считал содержимое файла и присвоил ему переменную %message% переименовал файл в .message.used и продолжил сканирование папки.

Буду признателен за любую помощь. Заранее спасибо.

Отправлено: 23:34, 20-04-2016

 

Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


IDROID,
Почти все что надо:
Код: Выделить весь код
@echo off
set "d=papka"
for /f "delims= eol=" %%a in ('dir/a-d/b "%d%\*.message"') do (
 set "user=%%~na"
 copy/y "%d%\%%a" "%d%\.message.used"
 del /q "%d%\%%a"
)
pause>nul
Цитата IDROID:
считал содержимое файла и присвоил ему переменную %message% »
Это, в-принципе, можно сделать поигравшись с буфером и js, но зачем, с помощью того как это реализовано в стр5, загоняете содержимое туда куда...
Проверку на наличие через планировщик, нечего ему отдыхать, а вот, если файлов *.message, будет несколько, то уже вопрос к вам как поступать.

Последний раз редактировалось alpap, 21-04-2016 в 09:59.


Отправлено: 09:53, 21-04-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 60
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата alpap:
Почти все что надо:
Код:
@echo off
set "d=papka"
for /f "delims= eol=" %%a in ('dir/a-d/b "%d%\*.message"') do (
set "user=%%~na"
copy/y "%d%\%%a" "%d%\.message.used"
del /q "%d%\%%a"
)
pause>nul »
Создается только один файл ".message.used". Я чуть-чуть изменил скрипт вот так :

@echo off
set "d=%USERPROFILE%\Desktop"
echo %d%
for /f "delims= eol=" %%a in ('dir/a-d/b "%d%\*.message"') do (
set "user=%%~na"
echo "%user%"
copy/y "%d%\%%a" "%d%\%%a.used" >nul
del /q "%d%\%%a"
)
echo Testmsg
pause

Теперь нормально исполняется, но переменная все же только с именем последнего файла, а не каждого по очереди. Можно реализовать вывод переменной с разными значениями для каждого файла?

Отправлено: 14:16, 21-04-2016 | #3


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата IDROID:
вывод переменной с разными значениями »
Не понял юмора. В цикле у переменной и есть разные значения, напишите, например, вместо строки
Код: Выделить весь код
set "user=%%~na"
, строку
Код: Выделить весь код
break>"%%~na.txt"
и получите в директории bat файла столько созданных .txt файлов сколько файлов .meesage и с их именем соответственно.

Отправлено: 16:11, 21-04-2016 | #4


Пользователь


Сообщения: 60
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата alpap:
Цитата IDROID:
вывод переменной с разными значениями »
Не понял юмора. В цикле у переменной и есть разные значения, напишите, например, вместо строки
Код: Выделить весь код
set "user=%%~na"
, строку
Код: Выделить весь код
break>"%%~na.txt"
и получите в директории bat файла столько созданных .txt файлов сколько файлов .meesage и с их именем соответственно.
Возможно, я плохо объяснил
Давайте еще раз)
Есть папка, в которую постоянно будут приходить файлы с расширением .message. Нужен скрипт, который будет постоянно сканировать эту папку на эти файлы, поочередно брать имя файла и придавать ему переменную %user%. Потом читает содержимое файла и придает ему переменную %message%.
Потом выводит все это в формате :
[%date%-%time%][%user%] : %message%
И снова проделывать те же действия для других файлов с расширением .message.

Возможно такое сделать на cmd?

Отправлено: 21:17, 21-04-2016 | #5


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата IDROID:
Потом выводит все это в формате »
- куда?

Отправлено: 21:39, 21-04-2016 | #6


Пользователь


Сообщения: 60
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата alpap:
- куда? »
В окно командной строки

Отправлено: 23:35, 22-04-2016 | #7


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


IDROID,
как сделать красивее вывод я не знаю (не умею)
Код: Выделить весь код
@echo off
set "d=%USERPROFILE%\Desktop"
for /f "delims= eol=" %%a in ('dir/a-d/b "%d%\*.message"') do (
 for /f "delims= eol=" %%b in ('type "%d%\%%~a"^|more') do (
  echo:%date%-%time:~,8% %%~na %%b
))
pause>nul
.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:53, 23-04-2016 | #8


Пользователь


Сообщения: 60
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата alpap:
IDROID,
как сделать красивее вывод я не знаю (не умею)
Код:
@echo off
set "d=%USERPROFILE%\Desktop"
for /f "delims= eol=" %%a in ('dir/a-d/b "%d%\*.message"') do (
for /f "delims= eol=" %%b in ('type "%d%\%%~a"^|more') do (
echo:%date%-%time:~,8% %%~na %%b
))
pause>nul »
Спасибо)

Отправлено: 13:16, 29-04-2016 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Сканирование папки на файлы с определённым расширением

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Удалить из папки все файлы с расширением .txt, кроме одного kardinalmax Скриптовые языки администрирования Windows 13 22-10-2015 12:21
CMD/BAT - [решено] Нужно сделать батник который по очереди будет запускать все файлы с определённым расш DoroViska Скриптовые языки администрирования Windows 2 20-06-2014 13:35
CMD/BAT - [решено] сканирование папки на наличие файла и его архивация Anufriev Скриптовые языки администрирования Windows 34 14-09-2012 12:36
Возможно ли как то запустить на телефоне (nokia n73) файлы с расширением .exe с ПК THEDOGG Мобильные ОС, смартфоны и планшеты 3 25-04-2012 23:23
CMD/BAT - [решено] Нужно составить список файлов с определённым расширением и загонял его в TXT i-Lex Скриптовые языки администрирования Windows 4 28-02-2012 06:36




 
Переход