Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


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

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


Цитата idenchik1488@vk:
Выполнять данную команду с каждым файлом, »
Ага-ага. И над «before.txt», и над «middle.txt», и над «after.txt» — так получается ?
Скрытый текст
Код: Выделить весь код
@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