Показать полную графическую версию : [решено] Создать список файлов с квадратными кавычками
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
Кто знает как между строк вставлять строки ?
Пустая строка?
echo.
Если с новой строки, то:
echo.Текст
И да не совсем понятно, что Вам требуется.
и под каждым именем добавить
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=
вот и гуляю в поисках решения собирая куски скриптов с добавлением [ ] в начало и конец..
@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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.