Войти

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


XXXp
28-01-2012, 14:45
Подскажите пожалуйста, есть несколько сотен файлов *.ini, состоящих из нескольких строк, все они находятся в одной папке, возможно ли скриптом добавить новую строку (последнюю), значение которое будет fname=название файла (без .ini) к каждому из этой сотни файлов автоматически?

Foreigner
28-01-2012, 15:37
XXXp,

@echo off

pushd "c:\profiles"
for %%i in (*.ini) do 1>>"%%i" echo frame=%%~ni
popd

XXXp
28-01-2012, 15:58
Вы как всегда на высоте!!! Спасибо большое!

megaloman
28-01-2012, 16:06
Foreigner, а зачем здесь строки
pushd "c:\profiles"
popd
ИМХО, смысла никакого

Foreigner
28-01-2012, 16:13
megaloman,
Это просто лень в цикле прописывать путь.

XXXp
03-02-2012, 17:33
Обратное действие теперь понадобилось)
Нужно брать из файла c:\config.ini
строчку fname=zzz
и копировать этот файл (config.ini) под именем zzz.ini в папку c:\pro (т.е. c:\config.ini --> c:\pro\zzz.ini)
Заранее спасибо!

XXXp
07-02-2012, 00:44
Это сложно получается?

megaloman
07-02-2012, 11:48
@Echo Off
Set In=C:\Config.ini
Set Out=C:\Pro
Set Key=fname

SetLocal EnableExtensions

FOR /F "tokens=1,2 usebackq delims==" %%i IN ("%In%") DO If /I "%%i"=="%Key%" Set Name=%%j.ini & GoTo :Continue
:Continue
Copy "%In%" "%Out%\%Name%" >nulА если имя файла в дальнейшем не понадобится, то чуть корочеFOR /F "tokens=1,2 usebackq delims==" %%i IN ("%In%") DO If /I "%%i"=="%Key%" Copy "%In%" "%Out%\%%j.ini" & GoTo :Continue
:Continue

XXXp
07-02-2012, 17:18
Спасибо большое!

XXXp
28-03-2012, 19:17
подскажите пожалуйста ещё к предыдущему скрипту, понадобилась такая вещь:
1. берем из c:\config.ini значение ключа fname
2. Копируем из папки c:\1 в папку c:\2 файлы fname.ini и fname.conf
Спасибо!

XXXp
31-03-2012, 17:20
Очень прошу помочь мне с моим вопросом!

Foreigner
31-03-2012, 19:06
1. берем из c:\config.ini значение ключа fname
2. Копируем из папки c:\1 в папку c:\2 файлы fname.ini и fname.conf
Спасибо! »

Не совсем ясно, что делать со значением параметра fname?

@echo off
setlocal

for /f "tokens=*" %%i in (' findstr "fname" config.ini ') do 1>nul set "%%i"
echo %fname%

for %%i in (ini conf) do copy c:\1\fname.%%i c:\2

XXXp
31-03-2012, 22:11
Необходимо из папки c:\1 перенести в папку c:\2 файлы fname.ini и fname.conf. Соответственно значение fname мы узнаем из файла config.ini
Скрипт который вы привели пишет почему-то ошибку The system cannot find the file specified.
спасибо за помощь!

Foreigner
31-03-2012, 23:19
XXXp, Тогда наверное так:

...
for %%i in (ini conf) do copy "c:\1\%fname%.%%i" c:\2

XXXp
31-03-2012, 23:56
Спасибо большое, заработало!




© OSzone.net 2001-2012