PDA

Показать полную графическую версию : [решено] Создать список файлов с квадратными кавычками


minutka15
18-04-2024, 13:39
Нужно создать список .ехе файлов в out.txt из папки таким образом:
[filename1.exe]
и под каждым именем добавить
MyData=
Desc=
Param=

minutka15
18-04-2024, 19:49
Пол пути прошел по топорному, осталось вставить между строчками

MyData=
Desc=
Param=

@Echo Off
cls
dir /b *.exe > out.txt
Set "FileIn=%cd%\out.txt"
for /f "delims=" %%i in ('findstr/n "^" "%FileIn%"^& del/a/f "%FileIn%"') do set x=%%i& >>"%FileIn%" cmd/v/c echo [!x:*:=!
for /f "delims=" %%i in ('type "%FileIn%"^& ^>"%FileIn%" rem:') do >>"%FileIn%" echo %%i]
Exit /B

Кто знает как между строк вставлять строки ?

NickM
18-04-2024, 19:53
Пустая строка?
echo.
Если с новой строки, то:
echo.Текст

NickM
18-04-2024, 20:13
И да не совсем понятно, что Вам требуется.

и под каждым именем добавить
MyData=
Desc=
Param= »
, эти данные откуда берутся/ каким образом заполняются?

minutka15
18-04-2024, 20:22
И да не совсем понятно, что Вам требуется. »

Под каждым именем файла эти данные нужно тупо вставить.

Например запускаем dir /b *.exe > out.txt
и получаем список exe файлов

filename1.exe
filename2.exe
filename3.exe

но мне нужно с такой структурой
[filename1.exe]
MyData=
Desc=
Param=

[filename2.exe]
MyData=
Desc=
Param=

[filename3.exe]
MyData=
Desc=
Param=

вот и гуляю в поисках решения собирая куски скриптов с добавлением [ ] в начало и конец..

sov44
18-04-2024, 20:22
@echo off
setlocal enabledelayedexpansion

set in=d:\my_folder

for /f "delims=" %%a in ('dir /b /s /a-d "%in%\*.exe" 2^>nul') do (
(echo.
echo %%~a
echo [%%~nxa]
echo MyData=
echo Desc=
echo Param=) >>"%in%\out1.txt"
)
pause
exit /b

minutka15
18-04-2024, 20:42
@echo off
setlocal enabledelayedexpansion
set in=d:\my_folder
for /f "delims=" %%a in ('dir /b /s /a-d "%in%\*.exe" 2^>nul') do (
(echo.
echo %%~a
echo [%%~nxa]
echo MyData=
echo Desc=
echo Param=) >>"%in%\out1.txt"
)
pause
exit /b »

Спасибо!
однако получается не совсем то..

d:\my_folder\filename.exe <- получается с этой строкой которая тут не нужна, а все остальное точь в точь!
[filename.exe]
MyData=
Desc=
Param=


А вот так получилось!

@echo off
setlocal enabledelayedexpansion

set in=d:\my_folder

for /f "delims=" %%a in ('dir /b /a-d "%in%\*.exe" 2^>nul') do (
(echo.

echo [%%~nxa]
echo MyData=
echo Desc=
echo Param=) >>"%in%\out1.txt"
)
pause
exit /b


БЛАГОДАРЮ

megaloman
19-04-2024, 14:23
Так тоже получается@Echo Off &cls &>nul chcp 1251
Set "BoxIn=Z:\Box_In"
rem Set "BoxIn=%~dp0"
Set "Mask=*.exe"
Set "FileOut=%BoxIn%\Out.txt"

Pushd "%BoxIn%" || (Echo "%BoxIn%" Not found &Pause &Exit /B 2)
>"%FileOut%" (For %%f In ("%Mask%") Do (
Echo [%%~nxf]
Echo MyData=
Echo Desc=
Echo Param=
Echo.
)
)
Popd
Exit /B

minutka15
20-04-2024, 13:07
Так тоже получается »
я и не сомневаюсь :)
Спасибо !




© OSzone.net 2001-2012