|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум 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 |
|
Ветеран Сообщения: 2735
|
Профиль | Отправить 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 | |
|