Показать полную графическую версию : Сканирование папки на файлы с определённым расширением
Доброго дня!
Нужно написать скрипт, который будет постоянно сканировать папку на файлы с расширением .message. При их обнаружении нужно чтобы скрипт считал название файла без расширения и присвоил этому названию переменную %user%, считал содержимое файла и присвоил ему переменную %message% переименовал файл в .message.used и продолжил сканирование папки.
Буду признателен за любую помощь. Заранее спасибо.
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
считал содержимое файла и присвоил ему переменную %message% »
Это, в-принципе, можно сделать поигравшись с буфером и js, но зачем, с помощью того как это реализовано в стр5, загоняете содержимое туда куда...
Проверку на наличие через планировщик, нечего ему отдыхать, а вот, если файлов *.message, будет несколько, то уже вопрос к вам как поступать.
Почти все что надо:
Код:
@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
Теперь нормально исполняется, но переменная все же только с именем последнего файла, а не каждого по очереди. Можно реализовать вывод переменной с разными значениями для каждого файла?
вывод переменной с разными значениями »
Не понял юмора. В цикле у переменной и есть разные значения, напишите, например, вместо строки set "user=%%~na", строку
break>"%%~na.txt" и получите в директории bat файла столько созданных .txt файлов сколько файлов .meesage и с их именем соответственно.
вывод переменной с разными значениями »
Не понял юмора. В цикле у переменной и есть разные значения, напишите, например, вместо строки set "user=%%~na", строку
break>"%%~na.txt" и получите в директории bat файла столько созданных .txt файлов сколько файлов .meesage и с их именем соответственно.
Возможно, я плохо объяснил :(
Давайте еще раз)
Есть папка, в которую постоянно будут приходить файлы с расширением .message. Нужен скрипт, который будет постоянно сканировать эту папку на эти файлы, поочередно брать имя файла и придавать ему переменную %user%. Потом читает содержимое файла и придает ему переменную %message%.
Потом выводит все это в формате :
[%date%-%time%][%user%] : %message%
И снова проделывать те же действия для других файлов с расширением .message.
Возможно такое сделать на cmd?
Потом выводит все это в формате » - куда?
- куда? »
В окно командной строки
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
.
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 »
Спасибо)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.