|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поиск файла по маске и выполнение с ним команды |
|
CMD/BAT - [решено] Поиск файла по маске и выполнение с ним команды
|
Новый участник Сообщения: 11 |
Есть батник с таким кодом
set list=list.txt set xml=iplist.xml for /F %%i in (%list%) do ( type before.txt>>%xml% <nul set /p strTemp=%%i>>%xml% type middle.txt>>%xml% <nul set /p strTemp=%%i>>%xml% type after.txt>>%xml% echo. >> %xml% ) Нужен батник с таким же функционалом, но надо чтобы заместо list.txt был найденный по маске файл и заместо iplist.xml сохранялось в одноименный файл только с расширением .xml Все txt лежат в 1 папке |
|
Отправлено: 15:34, 14-08-2017 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата idenchik1488@vk:
|
|
Отправлено: 15:47, 14-08-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 11
|
Профиль | Сайт | Отправить PM | Цитировать |
Отправлено: 16:00, 14-08-2017 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата idenchik1488@vk:
![]() Скрытый текст
@echo off setlocal enableextensions enabledelayedexpansion set sSourceFolder=%~1 if defined sSourceFolder ( if exist "%sSourceFolder%\." ( for /f "usebackq delims=" %%i in (`2^>nul dir /b /a:-d "%sSourceFolder%\*.txt" ^| findstr.exe /i /v /b /e /l /c:"before.txt" /c:"middle.txt" /c:"after.txt"`) do ( for /f "usebackq delims=" %%j in ("%sSourceFolder%\%%~i") do ( >"%sSourceFolder%\%%~ni.xml" ( type "before.txt" <nul set /p sVar=%%j type "middle.txt" <nul set /p sVar=%%j type "after.txt" echo. ) ) ) ) else ( echo Can't find source folder [%sSourceFolder%]. exit /b 2 ) ) else ( echo Usage: %~nx0 ^<Source folder^> exit /b 1 ) endlocal exit /b 0 Исходная папка задаётся аргументом пакетного файла (также можно просто перетащить папку на пакетный файл в Проводнике). Не проверялось совершенно. Нужна проверка — выкладывайте пару-тройку образцов *.txt, плюс «before.txt», «middle.txt» и «after.txt», упакованные в архив. |
|
Отправлено: 16:53, 14-08-2017 | #4 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Прочтутся все *.txt кроме before.txt, middle.txt, after.txt
@Echo Off Set "Maska=*.txt" Set Spisok="before.txt" "middle.txt" "after.txt" Set "BoxIn=Z:\Box_In" If Not "%1"=="" ( Set "BoxIn=%~1" ) If Not "%BoxIn%"=="" ( Pushd "%BoxIn%" || (Echo Folder "%BoxIn%" not found &Pause &GoTo :Eof) ) FOR %%f IN ("%Maska%") DO Call :ToXml "%%~f" %Spisok% Popd GoTo :Eof :ToXml If /I %1==%2 GoTo :Eof If /I %1==%3 GoTo :Eof If /I %1==%4 GoTo :Eof >"%~n1.xml" (for /F "usebackq delims=" %%i in (%1) do ( type %2 <nul set /p strTemp=%%i type %3 <nul set /p strTemp=%%i type %4 echo. ) ) GoTo :Eof Если папка задана Set "BoxIn=" и батник запускается из папки с указанными файлами, то будут обработаны файлы в текущей папке. Проверялось на выдуманных мной файлах. |
|
------- Последний раз редактировалось megaloman, 15-08-2017 в 11:09. Отправлено: 19:11, 14-08-2017 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] поиск файла по маске и запись этого имени в переменную | ___dima___ | Скриптовые языки администрирования Windows | 20 | 18-06-2017 01:46 | |
Любой язык - [решено] Выполнение команды по ssh. | crocki | Скриптовые языки администрирования Windows | 2 | 01-08-2016 14:07 | |
CMD/BAT - Копирование файлов в папки по маске файла и маске папки (BAT) | skyskiff | Скриптовые языки администрирования Windows | 7 | 20-09-2015 22:41 | |
CMD/BAT - [решено] Поиск файла по маске и по дате | Баян | Скриптовые языки администрирования Windows | 2 | 14-03-2011 13:32 | |
CMD/BAT - [решено] поиск файла по маске | evilfelix | Скриптовые языки администрирования Windows | 11 | 23-09-2010 16:26 |
|