Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  .bat skript: kuidas saada faili sisu muutuja väärtuseks? märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
warwas
HV Guru
warwas

liitunud: 06.07.2003



Autoriseeritud ID-kaardiga

sõnum 28.01.2009 11:54:48 .bat skript: kuidas saada faili sisu muutuja väärtuseks? vasta tsitaadiga

Probleem siis pealkirjas juba mainitud. Oleks vaja saada ühe väikese üherealise textifaili sisu skripti muutujaks.
Guugeldamise tulemusena leidsin sellise lahenduse:
set /p test=<c:\dir.txt

Command Prompti all asi töötab, kui aga masin flopi pealt üles lasta (proovitud nii w98 kui ka Vista boot diskiga) siis sellist muutujat üldse ei loodagi, väärtuse andmisest rääkimata.
Aru ma ei mõista, mida ma valesti teen...

Just-in-case räägiks ka taustainfo ära, mida ma üleüldse saavutada soovin.
Oleks vaja teha selline pooluniversaalne buutiv Ghost'i recovery cd. Oleks mul seal üks kataloog nimega IMG, kus sees oleks siis üks *.gho laiendiga image fail. Tahaks saavutada seda, et Ghost avaks selle image faili automaatselt. Kuna aga image faili nimi võib muutuda, siis tahaks vältida seda, et ma iga kord pean autoexec.bat'is seda faili nime muutma.
Senine mõttetöö on viinud mind selleni:
dir x:\img\*.gho /b > r:\dir.txt
set /p image=r:\dir.txt
ghost.exe -clone,mode=restore,src=x:\img\%image%,dst=1 -sure -fx

R: ketas on lihtsalt üks väike ram-drive kuhu saan igasugust ajutist ködi kirjutada.
Selle dir.txt lahenudse teed läksin ma seetöttu, et mul ei onnestunud kuidagi seda "dir *.gho /b" väljundit otse sinna muutujasse suruda. On see muidu võimalik?
Kommentaarid: 247 loe/lisa Kasutajad arvavad:  :: 0 :: 3 :: 224
tagasi üles
vaata kasutaja infot saada privaatsõnum
HacaX
HV Guru
HacaX

liitunud: 22.01.2004




sõnum 28.01.2009 12:15:11 vasta tsitaadiga

FOR käsu poole vaata, tolle /F võti on suuteline failidest ridu lugema (IIRC otse muutujasse, ja kui ei olegi too väliste käskude poolt kasutatav siis saad ise teise muutujasse salvestama).

EDIT: vabanda, ei süvenenud probleemi korralikult. Asja annab väga lihtsalt ka ilma environmenti salvestatavate muutujateta lahendada, ajutise vahefaili kasutamisest rääkimata:
for %a in (x:\img\*.gbo) do ghost.exe -clone,mode=restore,src=%a,dst=1 -sure -fx

BATis kasutamisel peavad protsendimärgid kahekordselt olema.
Sellel koodijupil on küll see kitsaskoht, et kui sul juhtub rohkem kui 1 GBO fail olema siis käiakse ka see/need läbi, aga IMO võib selline asi ka su enda leitud lahenduses ette tulla.

_________________
IMO & GPLed
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 1 :: 0 :: 22
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
warwas
HV Guru
warwas

liitunud: 06.07.2003



Autoriseeritud ID-kaardiga

sõnum 28.01.2009 16:53:34 vasta tsitaadiga

Tänud!

Kiirustasin kohe sinu esimest ideed proovima ja nagu sai isegi pärast parandasid, siis see ei toiminud nii nagu vaja.

Ei tulnud kohe siia hädaldama, nokkisin ise edasi ja jõudsin sellise lahenduseni:
FOR %%G IN ('dir %cd-drive%:\img\*.gho') DO set image=%%G
%ramdrive%:\apps\ghost.exe -clone,mode=restore,src=%image%,dst=1 -sure -fx

Toimib kah... kuigi see sinu teine variant on muidugi asjalikum. icon_smile.gif

Igatahes tänud õigele rajale aitamise eest!
Kommentaarid: 247 loe/lisa Kasutajad arvavad:  :: 0 :: 3 :: 224
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  .bat skript: kuidas saada faili sisu muutuja väärtuseks?
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.