Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 4
1

BAT-ник для создания файла с заданным текстом и вставка в него имен файлов и их расширения из списка

24.02.2015, 14:04. Показов 2698. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день
В общем стоит такая задача:
В некую папку C:\PATH периодически закидываются файлы вида file1.ext, file2.ext и тд. Нужен батник чтобы сканировал эту папку на наличие файлов с расширением .ext (и если можно несколько расширений .ext, .exp, .exv) и при наличии таких файлов создавал другой файл import.imp с содержанием:
FILENAME=file1
EXTENSION=EXT
PATH=C:\PATH

FILENAME=file2
EXTENSION=EXT
PATH=C:\PATH
....
и так далее для всех файлов из списка
Подскажите решение.
Заранее спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2015, 14:04
Ответы с готовыми решениями:

Bat`ник для переименования файла
Не могу ни как решить проблему с выводом сообщения. Кто может помогите! Вот текст батника: Echo...

Создание BAT файла для создания архивов из файлов в папке включая содержимое ее подкаталогов
Доброго дня, уважаемые пользователи!! Прошу помощи ибо сил нет никаких уже) Имеется задание:...

Bat-ник для удаления %userprofile%\AppData\Roaming\1C\ кроме файлов с расширением .pfl
Коллеги, доброго времени суток. Имеется bat-ник rd /q /s...

BAT фаил для перемещения файлов и удаления расширения этих файлов
Приветствую форумчане и гуру! Задача в следующем: 1. Есть папка ABC в которой создано несколько...

7
1780 / 762 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
24.02.2015, 16:34 2
Лучший ответ Сообщение было отмечено Dragokas как решение

Решение

bseuhgm, примерно так
Windows Batch file
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
@echo off
setlocal enabledelayedexpansion
 
for %%n in (ext,exp) do (
for /f "delims=" %%a in ('dir /b /a-d "C:\PATH\*.%%n"') do (
set rs=%%~xa
findstr /ic:"FILENAME=%%~na" "import.imp" || (
    echo.
    echo FILENAME=%%~na
    echo EXTENSION=!rs:~1!
    echo PATH=C:\PATH
    )>>import.imp
    ) && (
findstr /ic:"EXTENSION=!rs:~1!" "import.imp" || (
    echo.
    echo FILENAME=%%~na
    echo EXTENSION=!rs:~1!
    echo PATH=C:\PATH
    )>>import.imp
)
) 
 
 
pause
exit /b
0
0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 4
24.02.2015, 17:38  [ТС] 3
Спасибо огромное, но зачем в листинге строки с 13 по 19? Они создают повторяющийся текст в файле. Также мелькает ошибка "Не удается открыть файл import.imp", но все отрабатывает. Еще раз спасибо!
0
1780 / 762 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
24.02.2015, 18:00 4
Цитата Сообщение от bseuhgm Посмотреть сообщение
зачем в листинге строки с 13 по 19? Они создают повторяющийся текст в файле. Также мелькает ошибка "Не удается открыть файл import.imp"
Ошибка появляется при обработке первого файла, пока ещё не создан import.imp. Ошибку можно подавить добавив 2>nul к 7 и 14 строке перед findstr.
Строки с 13 по 19 - добавляют запись в import.imp, если в C:\PATH\ будут файлы с одинаковым именем и разными расширениями.
0
0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 4
25.02.2015, 10:46  [ТС] 5
Все равно пишет - Файл не найден. Но это ладно - замаскировал.
Можно ли еще сделать чтобы писало сколько файлов обработано? Спасибо.
0
1780 / 762 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
25.02.2015, 12:08 6
Цитата Сообщение от bseuhgm Посмотреть сообщение
Можно ли еще сделать чтобы писало сколько файлов обработано?
Windows Batch file
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
@echo off
setlocal enabledelayedexpansion
 
for %%n in (ext,exp) do (
for /f "delims=" %%a in ('dir /b /a-d "C:\PATH\*.%%n" 2^>nul') do (
set /a n+=1
set rs=%%~xa
findstr /ic:"FILENAME=%%~na" "import.imp" || (
    echo.
    echo FILENAME=%%~na
    echo EXTENSION=!rs:~1!
    echo PATH=C:\PATH
    )>>import.imp
    ) && (
findstr /ic:"EXTENSION=!rs:~1!" "import.imp" || (
    echo.
    echo FILENAME=%%~na
    echo EXTENSION=!rs:~1!
    echo PATH=C:\PATH
    )>>import.imp
)
) 
echo %n%
 pause
exit /b
1
0 / 0 / 0
Регистрация: 24.02.2015
Сообщений: 4
25.02.2015, 13:49  [ТС] 7
Спасибо. И последний вопрос - никак не могу настроить чтобы выводило через echo русские буквы, перерыл уже весь интернет Система Win2012 Server

Добавлено через 49 минут
Разобрался сам с помощью Notepad++. Огромное спасибо за помощь!
0
1780 / 762 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
25.02.2015, 14:48 8
Цитата Сообщение от bseuhgm Посмотреть сообщение
чтобы выводило через echo русские буквы
Русский текст в консоли
0
25.02.2015, 14:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2015, 14:48
Помогаю со студенческими работами здесь

Распределение файлов по заданным папкам в зависимости от расширения файла
Здравствуйте, уважаемые пользователи, появилась проблема с написанием bat файла. Необходимо...

Создание файлов с заданным текстом с переменной взятой из файла
Здравствуйте! Задача такая. Есть два файла list.txt и speed.txt со списками. Необходимо взять...

Написать bat-ник, который записывает список всех файлов
Всем привет! Нужно написать bat-ник, который сам запускается, после запуска минимизируется,...

Поиск файлов по списку имён и по заданным расширениям с выводом полных имён найденных в текстовый файл
Доброго времени суток! Стоит задача сделать батник. Для поиска файлов по списку имён (кириллица)...

Убрать из имен файлов один и тот же символ, не задев названия файлов и их расширения
В папке имеется больше 500 файлов .mp3, у каждого трека есть свое название и исполнитель. А также в...

Регулярное выражение для получения списка файлов определенного расширения
На С++ нужно из всех файлов выбрать те, которые, к примеру с раширением .txt, или .html Так вот,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru