Batch script segítséget kérek!

Sziasztok!

Nem túl bonyi, de nem boldogulok vele:
A
C:\Users\usernév\AppData\Roaming\Mozilla\Firefox\profiles.ini
fileban vannak felsorolva a user által használt Firefox profilok. Ezt a path-ot szeretném kinyerni batch fileból, majd a kapott változót tovább használni.

Valami olyasmi lenne (ez a része működik), hogy

for %a in (user1 user2) do (find /i "Path" "C:\Users\%a\AppData\Roaming\Mozilla\Firefox\profiles.ini")

ez szépen vissza adja a teljes, Profile sort, valahogy így:


Path=Profiles/gn83k0zy.default
Path=Profiles/9lxnmntk.default
Path=Profiles/g3dhy750.teszt

Majd a C:\Users\%a\AppData\Roaming\Mozilla\Firefox\Profiles\%PROFILEPATH% alkönyvtárban szeretnék kicsit matatni. (ha valakinek mond valamit: wpkg-hez kellene)

Namost: a következő kód elvileg kiszedné a szükséges stringet az előző for kimenetéből, csak nem udom, hogyan kéne egymásba ágyazni őket - az alábbi tuti nem jó, de itt elakadtam...


for /f "tokens=2 delims=/" %%i in (for %%a in (user1 user2) do
		find /i "Path" "C:\Users\%a\AppData\Roaming\Mozilla\Firefox\profiles.ini")
	do set PROFILEPATH=%%i

Tehát több user van, és userenként lehet több FF profile is.

Előre is nagyon köszönöm!

ui: sh/bash/ksh-ban (ezeket ismerem nagyjából) mennyivel egyszerűbb lenne... :)

Hozzászólások

Windowsban erre (is) való a Powershell.

-----------
"640GB sokmindenre elég"

Igen, ennyit én is tudok...
de:
Nem ismerem, és most _csak_ ezért nem is nagyon szeretném magam beleásni. Egész' egyszerűen nekem most amolyan ágyúval verébre lenne.
Ráadásul - mind írtam - egy másik alkalmazásból fut majd, ami a powershell-lel nem tudom, hogyan működik együtt - valószínű jól, de inkább a %COMSPEC% /c-t használják :))
<-------
You can't grep on dead trees.

Nos, ma esetleg valaki nested for ciklus-ügyben? :)
<-------
You can't grep on dead trees.

ffoxprof.cmd:


@echo off

setlocal EnableDelayedExpansion

for %%u in (a b c) do (
	set USER=%%u
	for /f "usebackq tokens=2 delims=/" %%p in (`find /i "Path" "Users\!USER!\AppData\Roaming\Mozilla\Firefox\profiles.ini"`) do (
		set PROFILE=%%p
		echo "profile: !PROFILE!"
	)
)

M:\tmp>ffoxprof.cmd
"profile: a1.default"
"profile: a2.default"
"profile: a3.teszt"
"profile: b1.default"
"profile: c2.default"
"profile: c3.teszt"
"profile: c1.default"
"profile: c2.default"
"profile: c3.teszt"

Az utakra figyelj, mert a saját, összecsapott próbakörnyezetemet tükrözik!

Amúgy hallgass a jó szóra. Egy nap alatt simán el lehetett volna jutni PS-ben eddig, és tovább - magyar dok van Soós Tibor jóvoltából.

Bár a CMD messze többre képes, mint command.com volt, de annak a végiggontolatlan baromságaival kénytelen bugkompatibilisnek lenni, akármilyen nyakatekerés árán. Normális shellen edződött feltételezésekkel nem szabad felé közeledni -- pontosabban ha valami nem kényszerít, egyáltalán nem szabad felé közeledni.
Komolyan csodálom a winadminok tűrőképességét; hogy egy évtizeden át jó pofát vágtak ehhez a rossz vicchez, és nem gyújtották fel a MS-központot.

aprósággal kiegészíteném, hogy ne kelljen userneveket beírni és ne keressen ha nem létezik a fájl

for /F "tokens=*" %%u in ('dir /b c:\users') do (
set USER=%%u
for /f "usebackq tokens=2 delims=/" %%P in (`if exist "c:\Users\!USER!\AppData\Roaming\Mozilla\Firefox\profiles.ini" find /i "Path" "c:\Users\!USER!\AppData\Roaming\Mozilla\Firefox\profiles.ini"`) do (

Nested loophoz annyit, hogy a legegyszerűbb a belső fort kirakni egy eljárásba, és a külsőből azt meghívni. Persze így szebb. :)

"Komolyan csodálom a winadminok tűrőképességét; hogy egy évtizeden át jó pofát vágtak ehhez a rossz vicchez, és nem gyújtották fel a MS-központot."

Volt vbscript, gondolom azért. :)

Egyébként nagyon igaz, kedvencem az a szívás amikor egy script paraméterben kapott egy könyvtár nevet, ehhez hozzáfűzésre került egy relatív elérési út, és ha az összeillesztésnél \\ keletkezett, akkor nem találta az elérési úton levő fájlt vagy könyvtárt.

Most, így, egyben, mindenkinek:

KÖSZÖNÖM! :)

Nem csak a megoldásokat, hanem azt is, hogy tudok belőlük tanulni :)

A PS-t pedig megígérem, hogy megnézem, csak ennek a melónak érjek egyszer a végére... :)
<-------
You can't grep on dead trees.