Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Добавление параметра в текстовый файл равный названию файла (http://forum.oszone.net/showthread.php?t=226459)

XXXp 28-01-2012 14:45 1846207

Добавление параметра в текстовый файл равный названию файла
 
Подскажите пожалуйста, есть несколько сотен файлов *.ini, состоящих из нескольких строк, все они находятся в одной папке, возможно ли скриптом добавить новую строку (последнюю), значение которое будет fname=название файла (без .ini) к каждому из этой сотни файлов автоматически?

Foreigner 28-01-2012 15:37 1846257

XXXp,
Код:

@echo off

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


XXXp 28-01-2012 15:58 1846275

Вы как всегда на высоте!!! Спасибо большое!

megaloman 28-01-2012 16:06 1846280

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

Foreigner 28-01-2012 16:13 1846289

megaloman,
Это просто лень в цикле прописывать путь.

XXXp 03-02-2012 17:33 1851030

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

XXXp 07-02-2012 00:44 1853263

Это сложно получается?

megaloman 07-02-2012 11:48 1853452

Код:

@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 1853674

Спасибо большое!

XXXp 28-03-2012 19:17 1888725

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

XXXp 31-03-2012 17:20 1890800

Очень прошу помочь мне с моим вопросом!

Foreigner 31-03-2012 19:06 1890886

Цитата:

Цитата XXXp
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 1891003

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

Foreigner 31-03-2012 23:19 1891045

XXXp, Тогда наверное так:
Код:

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


XXXp 31-03-2012 23:56 1891068

Спасибо большое, заработало!


Время: 01:03.

Время: 01:03.
© OSzone.net 2001-