[Megoldva] windows cmd változó kérdés

Tudom felejtsem el a cmd-t. De nekem akkor is abban kéne megoldanom egy dolgot. Csak sehogy sem tudom.

Feladat:

Egy cmd-ben elindított program kimenetét ( stdout-ra ír ki egy sort, mert ráengedek egy windowsos grep-et), kéne változóként használnom ugyanabban a cmd-ben. Ami eddigi megoldásokat láttam, az számomra elég bizar volt.Egy fájlban eltárolrák az outputot, majd onnan beolvasták egy változóba, majd kitörölték a fájlt.Nem nagyon szeretnék írkálni temp fileokat.

Megoldható ez másképpen? Prog.hu előtt itt kérdezek inkább.

Köszönöm.

Hozzászólások

for /?
amire figyelni kell az az escape-elés pl ha csövezés kimenete kell

Pedig de, a SET -P XYZ= < tempfajl az ilyenkor szokásos tanclépés.

Bizisten sose fogtam volna powershellbe, ha nem volna ilyen elcseszett ez a "shell".

Próbálom megérteni amit írtál. Gyakorlatilag ez is készít egy proba.txt-t, azaz generál egy file-t!?

Ez abban különbözik amit én találtam megoldást, hogy itt a grep használata a file-ból való beolvasás után, míg amit én írtam az a fájlba írás előtt van. Jól értelmezem?

Fájl művelet nélkül nem is lehet?

félreérted, az a fájl csak a példa kedvéért van ott hogy legyen a grep-nek dolga, semmi köze a te ideiglenes fájlodhoz, írhattam volna ezt is:

@for /F %%i in ('echo valami ^| grep "a"') do @set xyz=%%i
...
@echo %xyz%

lehet variálni, a lényeg hogy egy változó értékadásához amit a batch fájl vagy egy benne lévő program geneál a tdout-ra, nem kell külön fájlba írni, ott a "for" erre

valahol egyszer láttad hogy "for %i in *.txt" azóta meg intuitíven használod és még csak egy for /?-t sem futottad át? programozóként mennyi a wtf/nap-od, mennyi meglepetés ér hogy jé ez nem úgy működik mint ahogy vártam?
(mellesleg _van_ benne logika, csak elvárod hogy a doksi elolvasása nélkül is úgy viselkedjen mint a bash.. ha már húzott a szeme nem kezelem úgy hogy biztos folyékonyan beszél angolul, legalább rákérdezek:) )

;)

"valahol egyszer láttad hogy "for %i in *.txt" azóta meg intuitíven használod és még csak egy for /?-t sem futottad át?"

Tkp. kb. így, annyi kieggel, hogy a valahol .batok tömkelege volt az ország munkanélküli ellátását végző rendszerben tucatnyi éve, akkor elég alaposan elolvastam a for helpjét. A tucatnyi év után kellett nem is régen újra belepiszkolnom ilyesmibe - a ciklusok szépen működtek, semmi okom nem volt újra elolvasni, pontosabban okom lett volna, mint most kiderült: a világ minden létező nyelvében ciklusszervezésszre szolgáló kulcsszónál kellett volna keresnem az stdines értékadást.
Komolyan mondom, tanulságos.

Egyébként eszembe jutott róla a jargon példája a bug-compatible kulcsszóhoz: "MS-DOS 2.0 used \ as a path separator to be bug-compatible with some cretin's choice of / as an option character in 1.0."

No, ez megint teljesen jogos, ui. nem ezeket a szavakat használtam a keresésre, hanem a cmd windows variable stdout redirect és hasonló szavak mixét, és pechem volt mert az én barátom az első féltucat találatra pont olyan fórumozók javaslatát adta, akik szintén nem olvasták végig a for /? eredményét - második hibám, hogy a féltucatból levontam a következtetést.

Jó bizonyság lettem arra, hogy a rest kétszer fárad: a cmd mint khmmm... shell leírásának komplett elolvasása helyett a powershellébe fogtam. Időn kívül nem veszítettem vele, ill. nyertem azt a tudást, hogy a kreténség nem végleges állapot.