...
Гений
(84839)
6 лет назад
@echo off
set folder=C:\0\0
set tmpfile="%TEMP%\%~n0-temp.txt"
for /r "%folder%" %%i in (*.txt) do (
del "%tmpfile%" /q 2>nul
for /f "usebackq delims=" %%j in ("%%i") do call :parseLine "%%j" "%tmpfile%"
move "%tmpfile%" "%%i"
)
exit
:parseLine
set str=%~1
:parseLineNext
for /f "tokens=1,* delims=$" %%i in ("%str%") do (
echo %%i>>%2
set str=%%j
)
if not "%str%"=="" goto parseLineNext
exit /b
----
P.S: В cmd заменить подстроку в строке не проблема. Н-р:
@echo off
set str=hello world, hello again
set str=%str:hello=goodbye%
echo %str%
Выведет goodbye world, goodbye again
Проблема заменить подстроку именно на символ переноса строки.
Вася ВасечкинМыслитель (5494)
6 лет назад
) И снова здравствуйте! Вы опять не спите? )) Мне кажется на этом проекте только я один про бат задаю вопросы каверзные, а вы на все решение находите и тоже причем один ) больше никого нет ))) Запустил bat, изменений нет, и он зацикливается не закрывается.
Вот что на скриншоте
Вася ВасечкинМыслитель (5494)
6 лет назад
Вообще выше VBS скрипт хорошо работает, файлов будет около 30 txt, я их решил в одну папку спихнуть, но все равно путь к каждой нужно прописать. Вы кстати не знаете, может в VBS скрипте задать путь на папку как то, а не на конкретный файл?
...Гений (84839)
6 лет назад
Если в тексте кавычки:
У call большие проблемы с передачей внутренних кавычек при нескольких параметрах с кавычками %)
Решил так:
@echo off
setlocal enabledelayedexpansion
set folder=C:\0\0
set tmpfile=%TEMP%\%~n0-temp.txt
for /r "%folder%" %%i in (*.txt) do (
del "%tmpfile%" /q 2>nul
for /f "usebackq delims=" %%j in ("%%i") do call :parseLine "%%j"
move "%tmpfile%" "%%i">nul
)
exit
:parseLine
set str=%~1
:parseLineNext
for /f "tokens=1,* delims=$" %%i in ("!str!") do (
echo %%i>>"%tmpfile%"
set str=%%j
)
if not "!str!"=="" goto parseLineNext
exit /b
Алекс Ник
Просветленный
(27519)
6 лет назад
Если делаешь в С или PHP можно написать \n
если делаешь в редакторе, можно код ввести на бухгалтерской клаве. нажимаешь num look и набираешь 010 013 это тоже самое. Может у Far командер такой редактер, у волков командера такой редактор
Вася ВасечкинМыслитель (5494)
6 лет назад
Не знаком с языками программирования, нужно именно через BAT потому что его будет запускать другая программа.
Раз
Два
Все txt файлы лежать в одной папке, но разбросаны по подпапкам.
Заранее спасибо за ответ!