Batch programozás - Szoftverfejlesztés fórum

üzenetek

hozzászólások


Andrej84
(tag)

Sziasztok!

Két batch fájlt kéne írni.

Az egyiket bepakolnám a Sendto mappába és az lenne a dolga, hogy egy txt fájlba írja azoknak a mappának az elérési útvonalát, amiket ''elküldök neki''. A lenyeg, hogy a txt fájlhoz hozzáfűzni kéne,úgy hogy mindegyik elérési útvonal új sorba kerüljön. Meg ha meg lehet oldani, tegyen egy idézőjelet az elérési útvonalak elé és mögé.
Tehát kb így nézzen ki az a txt fájl:
''d:\valami\valami1\''
''d:\valami\valami2\''

A második batch fájlnak meg az lenne a dolga, hogy sorban belép a txt fájlban található mappákba és ott a következő utasításokat hajtja végre:
IF EXIST *rar c:\Progra~1\WinRAR\WinRAR.exe e -O- -inul *.rar
move *.r?? d:\masik_konyvtar\
move *.sfv d:\masik_konyvtar\

Ha tud ebben valaki segíteni, azt nagyon köszönöm. :R


Andrej84
(tag)

Az első fájl már meg is van, így néz ki:

echo %~f1 >>''c:\valami.txt''

Ez létrehozza a valami.txt-t, ha nem létezik. Ha már megvan a fájl, akkor új sorban hozzáfűzi a megadott paramétert.


A másikkal viszont még sajna nem boldogulok. Ha tudtok, légyszíves segítsetek!

Előre is köszönöm.b :R


Andrej84
(tag)

A probléma már nem aktuális, máshol már segítettek. Köszönet érte.
Ha valakit érdekel a megoldás:

@echo off
title Kitomorites
d:

for /f %%i in (d:\kitomorites.txt) do call :doit %%i
goto :eof

:doit
cls
echo Aktualis konyvtar
echo %~n1
cd %1
IF EXIST *rar c:\Progra~1\WinRAR\WinRAR.exe e -O- -inul *.rar

md d:\kuka\''%~n1''
move *.r?? d:\kuka\''%~n1''
move *.sfv d:\kuka\''%~n1''

goto :eof


Lolek
(aktív tag)

Hi all,

Olyan batch file-t szeretnék írni valami xcopy vagy hasonló parancsal ami jogokat is másol...
Valaki tud segíteni?

THX


X-COM
(nagyúr)

xcopy /? :
/O Copies file ownership and ACL information.


Csontikka
(aktív tag)

Sziasztok!

Xp alatt írok egy batch filet, de borzalmasan jeleníti meg a magyar karakterket.

Mit kell beállítani, hogy normális kezelje a kódlapot?

Előre is köszi!

Üdv
Csontikka


norbiphu
(senior tag)
Blog

Én is megszívtam ezt :B.
Használd az edit.com-ot szerkesztésre, (futtatás->edit.com) notepad helyett és az rendesen fogja kódolni, nem unicode-ba.

Üdv
Screammm


X-COM
(nagyúr)

azért a notepad-ben is be lehet állítani, hogy ansi-ba mentsen...


Lortech
(addikt)

És kipróbáltad mit eredményez ez a cmd-ben?


X-COM
(nagyúr)

és valóban, hm, nem is rémlik ilyen probléma a notepad-del, sorry


Csontikka
(aktív tag)

Köszi!


roy.t
(csendes tag)

szép napot!

egy batch file-t kéne írnom, ami a következőt tudja:
amelyik mappában van, abból a mappából az összes .jpg file-on végigmegy, és ezeknek a nevét egy szöveges file-ba menti.
ha az megoldható, akkor jó lenne, ha ez egy xml file lenne.. :DDD

kösz!


X-COM
(nagyúr)

mi az hogy xml, milyen xml?
amúgy valami ilyesmi

for %%a in (''c:\pic\*.jpg'') do @echo %%a >pictures.txt


Csontikka
(aktív tag)

hozzáírásnál nem két >> kell?


X-COM
(nagyúr)

de igen, kihagytam egyet


roy.t
(csendes tag)

köszönöm a segítséget, sejtettem hogy nincsen direkt xml-hez parancs. :(
szóval az én xml file-om nagyjából így néz ki:

<?xml version=''1.0'' encoding=''UTF-8''?>
<galeria nev=''Első'' mappa=''elso''>
<kep file=''kep01.jpg''/>
<kep file=''kep02.jpg''/>
<kep file=''kep03.jpg''/>
...
</galeria>
<galeria nev=''Második'' mappa=''masodik''>
<kep file=''kep99.jpg''/>
...
</galeria>
...

szóval, nekem ez kéne:
idításnál bekérjen egy nevet, megkeresse, hogy melyik 'galeria'-nak ez a nev attribútuma, ezután mappa attribútumban megadott mappából az összes .jpg file nevét beteszi abba 'galeria' node-ba, tehát a <galeria ...> és a </galeria> közé.
ezután már csak a hab a tortán az, hogy ha nincs olyan galérianév, amit az elején bekér, akkor létrehoz egy <galeria nev=''megadott név'' mappa=''megadott mappa''> és egy </galeria> sort. :DDD

asszem nagy fába vágtam a fejszém...


TBC
(tag)

Hi! Ez nem jó? :

dir /b /on > valami.txt


X-COM
(nagyúr)

hát ez cmd-vel elég bajos, mert ha jól értem, az xml félig készen van és abba kéne beletuszkolni az adatokat utólag. ezt cmd-vel nem igazán lehet megcsinálni, vagy legalábbis nehézkesen.


X-COM
(nagyúr)

de, ha csak a fájlnév kell, én azthittem, hogy a full path kell


roy.t
(csendes tag)

értem.
köszönöm!
akkor valami mással próbálkozok.


Lortech
(addikt)

ment egy privi.


TBC
(tag)

Az is megoldható, akkor leveszi a /b -t és megvan a teljes elérési út...


X-COM
(nagyúr)

hát ebben a formában egy elég érdekes eredményt fog kapni, ami abszolúte alkalmatlan


TBC
(tag)

Utánanéztem, igazad van. Ezzel a parancsal így nem lehet megcsinálni... :B


sbazsi
(veterán)

semmi-semmi.... :B
(=#17)

[Szerkesztve]


supesz
(aktív tag)
Blog

Hello Mindenki,

Hol nézhetnék bővebben utána ennek a batch írásnak? Tud valaki, valamilyen használható anyaggal szolgálni? Link, pdf, txt bármi megteszi :D
Megköszönném :R


supesz
(aktív tag)
Blog

Ez egyszerűen több, mint fantasztikus! :R
Köszönöm.
supesz


supesz
(aktív tag)
Blog

Ezt valaki?
[link]


Csontikka
(aktív tag)

Windows PowerShell
[link]

Ezzel lehet érdekes dolgokat csinálni.
Hogy konkrétan ilyet lehet-e, nem tudom, de más ezirányú ötletem nincs.

[link]


supesz
(aktív tag)
Blog

kössz. megnézem.


Krinya
(tag)

Sziasztok!

Mi a megoldás arra, hogy XCOPY-val csak a legfrissebb fájlt másoljam?
Batch-ban lenne, hetente lefutna, másolna egy fájlt. Minden nap keletkezik egy fájl, de nekem csak hetente egyre van szükségem, pl a szerdaira.

/D -vel nem igazán tudtam elérni ezt...

-áhhá, robocopy... :DDD

[Szerkesztve]


supesz
(aktív tag)
Blog

Hello,

Még mindíg nem bírok ezzel a feladattal :(
Az érdekelne, hogy 2 fájlt összehasonlítok és, ha megegyeznek akkor truet adjon vissza, ha nem egyeznek megakkor falset adjon vissza. Az errorlevellel befürödtem vagy nem tudom jól használni. Segítség :O

supesz


Lortech
(addikt)

Dos-os parancsok eredményét saját vagy valami módosított shellel tudnád lekérdezni, vagy ha a te folyamatod child processéről van szó. De az eredmény akkor is csak a visszatérési érték, nem pedig az, amit a program kiszemetelt a képernyőre. Emlékeim szerint. Szóval nem véletlenül nem találod a megoldást.
Muszáj a problémádat dos parancssorral, batch programozással megoldani? Mi a probléma egyáltalán? Mert ha nem pont az alényeg, hogy batch-csel oldd meg, hanem csak meg akarod oldani a feladatot valahogy, akkor biztos tudunk találni rá valami megoldást.


supesz
(aktív tag)
Blog

A szerverünkön van egy xls fájl. A login scriptünkbe kellene beletenni, hogy amikor a felhasználó belép, akkor lefusson neki ez a fájl (ez a szabályzat). Viszont nem akarjuk, hogy minden bejelentkezésnél feljöjjön neki. Legközelebb csak akkor jöjjön fel, ha módosítás történt a szerveren levő fájlban.


Lortech
(addikt)

Pl: login script indít egy win32 konzol alkalmazást ( nem sima batch ), ami megvizsgál egy feltételt (pl egy megadott fájlban szerepel-e a user azonosítója), ha teljesül, akkor fellöki az xls-t, ha nem akkor nem. Ha módosítjátok az xls-t, akkor lebombázzátok a fájlokat, így a feltétel nem fog teljesülni. Vagy akár a fájlba az is beletehető, hogy melyik verziót látta már a user, így nem kell törölni sem. (Jobb lenne adatbázis, így nem kéne konkurenciával szórakozni, ha pl egy közös profilt kell lefuttatni, és egy fájlba kéne írni több usernek.)


[Szerkesztve]


supesz
(aktív tag)
Blog

nem mindent értek amit mondasz, viszont csak valamilyen scriptből meghívható dolog jöhet szóba. adatbázis vagy más nem jöhet szóba...


Lortech
(addikt)

Akkor lassabban. :))
Logon script-nek megadod a login.bat-ot
login.bat tartalma:
akarmi.exe
Innentől kezdve bármid van, amit akarmi.exe tud, ha akármi.exe adatbázist kezel, akkor az van..
akarmi.exe:
1, megvizsgálja, hogy xy.dat fájl tartalmazza-e a bejelentkezett felhasználó nevét, ha nem, akkor lefuttatja az akarmi xls-t, majd beírja xy.dat-ba a user azonosítót, végül leáll. Ha megtalálta xy.datban a usernevet, akkor nem csinál semmit, leáll.
Ha új verzió van, nullázod xy.datot, így mindenkinek le fog futni.


supesz
(aktív tag)
Blog

Szóval írjam meg c-ben mondjuk.
A login.bat - ban meg call akármi.exe
Ja erre én is gondoltam. Szóval akkor a batchot felejtsem el mi?
pedig elég frnkón megcsináltam mát batch-al is, de ez az érték átadás ezt valahogy nem tudtam megoldani. az errorlevellel kinlódtam, de egyszer ezt csinálta aztán meg amazt. Qurva errorlevel :DDD


Lortech
(addikt)

Nem tudom, én voltam dosos batch-ből még versenyen is, de már nem emlékszem rá túl jól, és nekem nem lenne kedvem vele tökölni. Ha értesz hozzá, lehet írni vbsriptet és jscriptet is, azt is megeszi, ha windows2003 serverről van szó. Én személy szerint írnék rá egy kis appot, mert nekem az áll kézre, és pár perc alatt összedobom, de hogy neked melyik egyszerűbb, azt te tudod, én csak felvázoltam egy lehetőséget. Egyébként biztos van valami hivatalos, elengáns megoldás is.


[G@B]
(tag)

Sziasztok!
A feladat az lenne, hogy: Írjon BATCH-et, amely megnézi, hogy van-e a gépen Internet Explorer... Ha van akkor írja ki a böngészési előzményeit.

if exists C: \Program Files\Internet Explorer\iexplore.exe
dir %% /d >tartalom.txt
echo tartalom.txt

a középső sorban a % % közé kell vmi .tudnátok segíteni? :R


PazsitZ
(addikt)

Hát az IE a history-t ide menti: C:\Documents and Settings\user\Local Settings\History\History.IE5\
De .dat file-ba tehát ezt nehezen tudod simán kilistázni.
Nem a kedvenceket kéne megjeleníteni? Mert azt C:\Documents and Settings\user\Favorites\ könyvtárban .url file-ként megtalálod.


petakpa1
(őstag)

Mi a gond ezzel???

move c:\Program Files\emule\Temp\*.* c:\Documents and Settings\Nagy Péter\Dokumentumok\peti\Vmm32\Temp\
pause

Azt írja ki, hogy nem jó a szintaktis:(((


Lortech
(addikt)

Tedd idézőjelek közé az elérési utakat, mert space van bennük és/vagy hosszabbak is a kelleténél.

move ''c:\Program Files\emule\Temp\*.*'' ''c:\Documents and Settings\Nagy Péter\Dokumentumok\peti\Vmm32\Temp\''
pause

ps: az idézőjelet lecseréli a fórummotor két aposztrófra, tehát ne copy pastelj!

[Szerkesztve]


petakpa1
(őstag)

Köszi!

Most meg azt mondja, hogy több fájlt nem lehet egyetlen fájlba áthelyezni:(

Próbáltam ezt is:
move ''c:\program Files\eMule\Temp2\*.*'' ''c:\Documents and Settings\Nagy Péter\Dokumentumok\peti\Vmm32\Temp\*.*''

és ezt is:
move ''c:\program Files\eMule\Temp2\*.*'' ''c:\Documents and Settings\Nagy Péter\Dokumentumok\peti\Vmm32\Temp\''

és ezt is:
move ''c:\program Files\eMule\Temp2\*.*'' ''c:\Documents and Settings\Nagy Péter\Dokumentumok\peti\Vmm32\Temp''



Lortech
(addikt)

Nyisd meg az edit nevű programmal a bat fájlodat, és írd át a Péterben az é helyett rosszul szereplő karaktert é-re. (ansiba menti a notepad, de cmd ascii ékezetből ért, és edit olyan é-t csinál), majd mentsd.


petakpa1
(őstag)

Baszki. Ezt nem hiszem el.

És nagyon nagyon köszi!!!


supesz
(aktív tag)
Blog

Hello,

Segítségre lenne szükségem.
A batch-al szeretnék bezáratni egy programot. Hogyan tudom megtenni?

supesz


supesz
(aktív tag)
Blog

Itt van HELP, de nem tudom így sem. Vki segítene? Pls.

üzenetek