- Kormányok / autós szimulátorok topikja
- Milyen processzort vegyek?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Apple MacBook
- Google Chromecast topic
- Projektor topic
- Napokon belül váratlan versenyzővel bővül a VGA-piac
- Kezdő fotósok digitális fényképei
- Új Intel CPU-kkal jön a Surface Pro 12 és a Surface Laptop 8 for Business
- Nem kell még temetni: 2 éves órajelcsúcsot döntöttek meg Raptor Lake-kel
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
bepken
veterán
dehát a névnek így is fixnek kell lennie, nem?
sajnos továbbra is azt írja ki, mint az én verziómban: "No Instance(s) Available." (ha csak nem TEST-PC a neve)
-
Baryka007
addikt
tényleg ennyiből áll az a rész, ahogy fentebb írtam:
ECHO írd be a terem számát!
ECHO.
set /p class=Terem száma:
cls
ECHO írd be a gép számát!
ECHO.
set /p pc=Gép száma:
WMIC computersystem where name='TEST-PC' call rename name='%class%-%pc%'úgy
oldottamkerültem meg a problémát, hogy csináltam egy klónt, ahol a gép neve TEST-PCWMIC computersystem where name='TEST-PC' rename "!name:TEST-PC=%class%-%pc%!"
Próbáld meg így is... talán így lefut mindig ...

-
sgx
tag
Sziasztok!
Adott ez a kis programreszlet:
@Echo.
@copy %instpath%\Idoszinkron\BATCH\\timeserv.exe %Windir%\system32
@if %errorlevel% EQU 0 echo TimeServ.exe masolasa megtortent!
@if %errorlevel% NEQ 0 echo !!!TimeServ.exe NEM tortent meg!!!
@Echo.A batch utáni 2 "\\" jel mit takar? az eleresi uthoz nem lenne eleg csak "\"? igy nem syntax error-ra kéne futnia a programnak?
-
bepken
veterán
tényleg ennyiből áll az a rész, ahogy fentebb írtam:
ECHO írd be a terem számát!
ECHO.
set /p class=Terem száma:
cls
ECHO írd be a gép számát!
ECHO.
set /p pc=Gép száma:
WMIC computersystem where name='TEST-PC' call rename name='%class%-%pc%'úgy
oldottamkerültem meg a problémát, hogy csináltam egy klónt, ahol a gép neve TEST-PC -
Baryka007
addikt
amit szeretnék:
először kérjen be egy számot, ez a "terem száma"
majd kérjen be egy újabb számot, ez a "gép száma"
végül ezt a két változót fűzze össze kötőjellel elválasztva (pl.: 130-12)eddig el is jutok, igazából a gépnevet is módosítja a számomra megfelelő formátumban. csak gondoltam van arra is mód, hogy ne figyelje az aktuális gépnevet, egyszerűen csak írja felül azzal, amit korábban bekért.
(mint pl.: egy ip-cím módosításakor)
ebben az esetben tudnám használni korábban konfigurált gépeken is, ahol még nincs egységes gépnév. (ergo mindig külön be kéne kérni azt is)a rename ciklust / program részletet be tudnád ide másolni nekünk ? Szerintem ott kell valami kapcsolót berakni hogy a felülírást rákérdezés nélkül automatikusan megcsinálja, ebben biztos vagyok!

-
bepken
veterán
amit szeretnék:
először kérjen be egy számot, ez a "terem száma"
majd kérjen be egy újabb számot, ez a "gép száma"
végül ezt a két változót fűzze össze kötőjellel elválasztva (pl.: 130-12)eddig el is jutok, igazából a gépnevet is módosítja a számomra megfelelő formátumban. csak gondoltam van arra is mód, hogy ne figyelje az aktuális gépnevet, egyszerűen csak írja felül azzal, amit korábban bekért.
(mint pl.: egy ip-cím módosításakor)
ebben az esetben tudnám használni korábban konfigurált gépeken is, ahol még nincs egységes gépnév. (ergo mindig külön be kéne kérni azt is) -
Baryka007
addikt
így sikerült megoldani:
set /p class=Terem száma:
...
set /p pc=Gép száma:
....
WMIC computersystem where name='TEST-PC' call rename name='%class%-%pc%'viszont az aktuális név így muszáj, hogy fix legyen (ami jelenleg nem probléma, mert éppen klónozás előtt vagyok)
de továbbra is érdekelne, hogy össze lehet e hozni két változót egy változóbaén a helyedbe egy külső txt fileba írnám ki a két változót majd egy for /f es ciklussal olvasnám vissza őket %%A és %%B néven
Bár nem egészen tiszta hogy mit is akarsz csinálni
-
bepken
veterán
megoldódott közben, alaposan benéztem...a codepage kavart be - ha jól gondolom. a script-ben 1252 szerepelt, az ankelpad-ban pedig 852-essel mentettem el mindegyiket. aztán gondolom ez futtatáskor már nem igazán tetszett neki. aztán hogy mi csúszott el annyira, hogy épp az ip címet nem írta ki a netsh paranccsal....
lényeg, hogy miután átjavítottam 852-re a script-ben is, azután már jól működik
na de van még kérdésem bőven, remélem nem gond

szóval hogyan tudnám két változó értékét összefűzni, majd ezt harmadik változóként alkalmazni?
"terem száma"-"gép száma" >> ezeket összefűzve állna össze a gép neve, például "120-13"a következő lépésben pedig ez alapján az érték alapján szeretném módosítani a gép nevét.
ahogy olvasgattam, nem igazán van mód arra, hogy egyszerűen csak lecserélje, mert be kell írni a jelenlegi gép nevet is....így sikerült megoldani:
set /p class=Terem száma:
...
set /p pc=Gép száma:
....
WMIC computersystem where name='TEST-PC' call rename name='%class%-%pc%'viszont az aktuális név így muszáj, hogy fix legyen (ami jelenleg nem probléma, mert éppen klónozás előtt vagyok)
de továbbra is érdekelne, hogy össze lehet e hozni két változót egy változóba -
bepken
veterán
megoldódott közben, alaposan benéztem...a codepage kavart be - ha jól gondolom. a script-ben 1252 szerepelt, az ankelpad-ban pedig 852-essel mentettem el mindegyiket. aztán gondolom ez futtatáskor már nem igazán tetszett neki. aztán hogy mi csúszott el annyira, hogy épp az ip címet nem írta ki a netsh paranccsal....
lényeg, hogy miután átjavítottam 852-re a script-ben is, azután már jól működik
na de van még kérdésem bőven, remélem nem gond

szóval hogyan tudnám két változó értékét összefűzni, majd ezt harmadik változóként alkalmazni?
"terem száma"-"gép száma" >> ezeket összefűzve állna össze a gép neve, például "120-13"a következő lépésben pedig ez alapján az érték alapján szeretném módosítani a gép nevét.
ahogy olvasgattam, nem igazán van mód arra, hogy egyszerűen csak lecserélje, mert be kell írni a jelenlegi gép nevet is.... -
Csontikka
aktív tag
adott egy Ethernet nevezetű helyi kapcsolat. a következő paranccsal küzdök:
netsh interface ip set address name="Ethernet" static 192.168.2.%ip% 255.255.255.0 192.168.2.1 1
ahol ugye "Ethernet" a kapcsolat neve, az %ip% a változó, amit korábban kell megadnile is fut, be is állítja a megfelelő címeket, viszont ezután megy tovább a script, a netsh interface ip show config paranccsal lekérdezem a konfigot, de valamiért éppen csak az IP címet nem mutatja...
ha mauálisan kérdezem le, akkor viszont ott van. na ezt magyarázza el valaki
ha vársz kicsit a két parancs között, akkor is ugyanez a jelenség?
-
bepken
veterán
adott egy Ethernet nevezetű helyi kapcsolat. a következő paranccsal küzdök:
netsh interface ip set address name="Ethernet" static 192.168.2.%ip% 255.255.255.0 192.168.2.1 1
ahol ugye "Ethernet" a kapcsolat neve, az %ip% a változó, amit korábban kell megadnile is fut, be is állítja a megfelelő címeket, viszont ezután megy tovább a script, a netsh interface ip show config paranccsal lekérdezem a konfigot, de valamiért éppen csak az IP címet nem mutatja...
ha mauálisan kérdezem le, akkor viszont ott van. na ezt magyarázza el valaki
-
PumpkinSeed
addikt
Hogyan tudom a rendszer időt lekérdezni egy batch fileban?
Elég lenne, csak az órát lekérdezni, vagyis inkább jobb is lenne.

Solved
-
PumpkinSeed
addikt
Hogyan tudom a rendszer időt lekérdezni egy batch fileban?
Elég lenne, csak az órát lekérdezni, vagyis inkább jobb is lenne.

-
bepken
veterán
a következő lépés - amit kigondoltam - az volna, hogy ezeket a scripteket egyetlen futtatható állományba pakoljam össze.
most épp egy bat2exe nevezetű programmal oldottam meg mindezt, de nem vagyok benne biztos, hogy ez a módszer teljesen biztonságos... (tekintve, hogy az avira már kétszer beriasztott, mióta a "complie" gombbal molyolok
)van erre a célra jól bevált program/módszer?
sokkal kényelmesebb és esztétikusabb volna az egész, ha ezt a lépést sikerülne valahogy összehoznom. sőt a legkényelmesebb az volna, ha én szabhatnám meg, hogy hová csomagolja ki ezeket a fájlokat (amolyan installer "stílusban") -
bepken
veterán
-
bepken
veterán
-
cigam
titán
sziasztok!
úgy 1 hete villant át az agyamon, hogy azt a rengeteg előre megírt script-et (batch és powershell), amivel a melóhelyen folyamatosan teleszemetelem az egyik mappámat, talán össze lehetne rakni egy "programba".
eddig egész sok mindenre rájöttem különböző leírások alapján, de van egy olyan hibaforrás, amit sehogy sem sikerül kiküszöbölnöm...
a kérdéses program rész(let):
set /p choice=Válassz! -
ECHO.
if '%choice%'=='0' call MAIN.bat
if '%choice%'=='1' call ip_BP.bat
if '%choice%'=='2' call dom_BP.bat
if '%choice%'=='' goto start
if not '%choice%'=='1'2'3' goto startamikor választok egy számot, behívja az adott az adott fájlt. ha nem választok semmit vagy nem a felsorolt opciók közül választok, akkor visszamegy az elejére. eddig rendben is van.
viszont! hogyha mondjuk a "dom_BP.bat" fájlból visszalépek a "MAIN.bat" fájlba és "véletlenül" nyomok egy entert, akkor a legutóbb választott karakternek megfelelően viselkedik.
ez nem egy hatalmas probléma, de okozhat kellemetlenségeket a későbbiekben, mert elég szerteágazó kis programnak tervezem.
(például legutóbb a "0 - vissza" opciót választottam, véletlenül újra lenyomom az entert és ekkor csinál valami hülyeséget)eléggé laikus vagyok a témában (gondolom ez le is jött...) de remélem, nagyjából érthető, mi is volna a problémám.
előre is köszönöm a segítséget, tanácsokat

töröld a %choice% értékét visszatéréskor.
-
bepken
veterán
sziasztok!
úgy 1 hete villant át az agyamon, hogy azt a rengeteg előre megírt script-et (batch és powershell), amivel a melóhelyen folyamatosan teleszemetelem az egyik mappámat, talán össze lehetne rakni egy "programba".
eddig egész sok mindenre rájöttem különböző leírások alapján, de van egy olyan hibaforrás, amit sehogy sem sikerül kiküszöbölnöm...
a kérdéses program rész(let):
set /p choice=Válassz! -
ECHO.
if '%choice%'=='0' call MAIN.bat
if '%choice%'=='1' call ip_BP.bat
if '%choice%'=='2' call dom_BP.bat
if '%choice%'=='' goto start
if not '%choice%'=='1'2'3' goto startamikor választok egy számot, behívja az adott az adott fájlt. ha nem választok semmit vagy nem a felsorolt opciók közül választok, akkor visszamegy az elejére. eddig rendben is van.
viszont! hogyha mondjuk a "dom_BP.bat" fájlból visszalépek a "MAIN.bat" fájlba és "véletlenül" nyomok egy entert, akkor a legutóbb választott karakternek megfelelően viselkedik.
ez nem egy hatalmas probléma, de okozhat kellemetlenségeket a későbbiekben, mert elég szerteágazó kis programnak tervezem.
(például legutóbb a "0 - vissza" opciót választottam, véletlenül újra lenyomom az entert és ekkor csinál valami hülyeséget)eléggé laikus vagyok a témában (gondolom ez le is jött...) de remélem, nagyjából érthető, mi is volna a problémám.
előre is köszönöm a segítséget, tanácsokat

-
Baryka007
addikt
set /p a közvetlen.... de külső fájlból is tudsz adatot bekérni így:
for /f "tokens=1,2 delims=;" %%A in (VALAMI.TXT) do (
)
két zárójel között meg azt írsz amit akarsz ez adatbázis szerűen olvas be akármit a programba. Az én példámnál ez úgy működik hogy két mező van (oszlop) majd a rekordokon (sorokon)egyesével végig megy a program amiket úgy kérsz le ha pl az első mezőből akarsz kiolvasni hogy %%A a második meg %%B valamint a fájlban ; ilyen jellel kell elválasztani a két számot, vagy betűket szavakat stb stb....
-
O$zkł
aktív tag
-
O$zkł
aktív tag
Sziasztok
szeretnék írni egy egyszerű batch programot ami a felhasználótól kér be egy számot, majd ezt felhasználja a továbbiakban, ezt az adatbekérést hogy tudom megvalósítani ? -
Csontikka
aktív tag
szerintem inkább itt próbálkozz:
egyébként vagy installáltál valamit ami lefut indításkor, vagy benyeltél valami vírust.
Ha érzel ehhez elég erőd, ezzel a progival valószínüleg elég hamar megtalálható a hibás bejegyzés.
kis infó hozzá -
Tailor21
csendes tag
Üdv!
Remélem jó helyen járok!Minden gép indításnál egy ideje ez az idegesítő üzenet jelenik meg. Hogy lehet eltüntetni? Mi okozza ezt?
Win7 64bitHa jól emlékszem IP címet néztem meg azóta csinálja ezt

-
looser
addikt
output dir végére kell lezáró \

if WScript.Arguments.Count() <> 2 Then
wscript.echo "Usage:" & vbcrlf & "splitvcf.vbs filename output_dir"
wscript.quit -1
End If
filename = WScript.Arguments(0)
odir = WScript.Arguments(1)
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(filename)
id = 0
Do Until f.AtEndOfStream
line = f.ReadLine
If Trim(line) = "BEGIN:VCARD" Then
startwrite = true
Set fo = fso.CreateTextFile(odir & Right("00000" & id, 6) & ".vcf", True)
End If
If startwrite Then
fo.Write line & vbCrLf
End If
If Trim(line) = "END:VCARD" Then
startwrite = false
fo.Close
id = id + 1
End If
Loop
f.CloseAnélkül is megcsinálta, csak "all0####.vcf lett belőle :-)
Egyszerűen szuper, köszönet érte, nagyon jó fej vagy! :-)) -
sztanozs
veterán
output dir végére kell lezáró \

if WScript.Arguments.Count() <> 2 Then
wscript.echo "Usage:" & vbcrlf & "splitvcf.vbs filename output_dir"
wscript.quit -1
End If
filename = WScript.Arguments(0)
odir = WScript.Arguments(1)
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(filename)
id = 0
Do Until f.AtEndOfStream
line = f.ReadLine
If Trim(line) = "BEGIN:VCARD" Then
startwrite = true
Set fo = fso.CreateTextFile(odir & Right("00000" & id, 6) & ".vcf", True)
End If
If startwrite Then
fo.Write line & vbCrLf
End If
If Trim(line) = "END:VCARD" Then
startwrite = false
fo.Close
id = id + 1
End If
Loop
f.Close -
looser
addikt
-
sztanozs
veterán
A kód első sorában kell beállítani, hogy hol a fájl - át kell íni a "-ök között. A kimeneti könyvtárak később kell a kódba beírni, de mindjárt megmódosítom neked

-
looser
addikt
splitvcf.vbs
filename = "C:\Temp\textfile"
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(filename)
id = 0
Do Until f.AtEndOfStream
line = f.ReadLine
If Trim(line) = "BEGIN:VCARD" Then
startwrite = true
Set fo = fso.CreateTextFile("C:\Temp\" & id & ".vcf", True)
End If
If startwrite Then
fo.Write line & vbCrLf
End If
If Trim(line) = "END:VCARD" Then
startwrite = false
fo.Close
id = id + 1
End If
Loop
f.CloseValami gondja van a 4. sorral...
Így indítom:
splitvcf.vbs d:\htc\a.vcf d:\htc\all

A mappanevek és a filenevek is pontosak.
Azt pedig el is felejtettem mondani, hogy nagyon köszönöm, hogy foglalkozol a problémával!

-
sztanozs
veterán
Sziasztok! Valaki írna nekem egy olyan batchet, amely egy textfilet (első paraméter) feldarabol és a darabjait növekvő számsorba rendezve leteszi egy tetszőleges mappába (második paraméter) vagy akár ugyanoda leteszi *.vcf néven? Egy vCard-ot szeretnék darabolni, de órák óta küzdök és egy rakat alkalmazást kipróbáltam, de mindegyik elhasalt ezen a "feladaton". Maga a .vcf file (névjegyzék) egy elhalt androidos telóról való, amit egy Nokia 3110-be szeretnék feltölteni, de a PC Suite az első nevet hajlandó csak betölteni. 1500+ nevet tartalmaz a vcard, így nem szeretném egyenként szétdarabolni...
Nagy köszönet a segítségért!
Apropó: a BEGIN:VCARD sor előtt és az END:VCARD sor után kellene vágnia.
splitvcf.vbs
filename = "C:\Temp\textfile"
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(filename)
id = 0
Do Until f.AtEndOfStream
line = f.ReadLine
If Trim(line) = "BEGIN:VCARD" Then
startwrite = true
Set fo = fso.CreateTextFile("C:\Temp\" & id & ".vcf", True)
End If
If startwrite Then
fo.Write line & vbCrLf
End If
If Trim(line) = "END:VCARD" Then
startwrite = false
fo.Close
id = id + 1
End If
Loop
f.Close -
looser
addikt
Sziasztok! Valaki írna nekem egy olyan batchet, amely egy textfilet (első paraméter) feldarabol és a darabjait növekvő számsorba rendezve leteszi egy tetszőleges mappába (második paraméter) vagy akár ugyanoda leteszi *.vcf néven? Egy vCard-ot szeretnék darabolni, de órák óta küzdök és egy rakat alkalmazást kipróbáltam, de mindegyik elhasalt ezen a "feladaton". Maga a .vcf file (névjegyzék) egy elhalt androidos telóról való, amit egy Nokia 3110-be szeretnék feltölteni, de a PC Suite az első nevet hajlandó csak betölteni. 1500+ nevet tartalmaz a vcard, így nem szeretném egyenként szétdarabolni...
Nagy köszönet a segítségért!
Apropó: a BEGIN:VCARD sor előtt és az END:VCARD sor után kellene vágnia.
-
PumpkinSeed
addikt
-
Csontikka
aktív tag
Csináltam egy autoexec.bat-ot benne ami kell beletettem a dosbox mappájába C/progfájl/dosbox... Nem megy. Csináltam egy autoexec mappát beletettem nem megy. Csináltam egy cdrive mappát beletettem nem megy.
A DOSBox options.bat-ba beleírtam, hogy autoexec.conf-t indítsa el, majd azt létrehoztam, de az se megy. Én vagyok ilyen hülye?
van a dosbox.conf-ban egy [autoexec] rész
az alá írd be amit el szeretnél indítani.
Win7 alatt ezt a filet az alábbi mappában találod:
c:\Users\%USER%\AppData\Local\DOSBox\ -
PumpkinSeed
addikt
2 megolás van, vagy a "belső" c:\autoexec.bat-ba rakod bele a batch azon részét aminek "belül" kell végrehajtónia.
2. megoldás, hogy készítesz egy config filet és azzal hívod meg a dosbox-ot.
első körben ezeket tanulányozd át. a 3.ban amit te szeretnél, de az első kettő is kellhet a megértéséhez:
Csináltam egy autoexec.bat-ot benne ami kell beletettem a dosbox mappájába C/progfájl/dosbox... Nem megy. Csináltam egy autoexec mappát beletettem nem megy. Csináltam egy cdrive mappát beletettem nem megy.
A DOSBox options.bat-ba beleírtam, hogy autoexec.conf-t indítsa el, majd azt létrehoztam, de az se megy. Én vagyok ilyen hülye?
-
Csontikka
aktív tag
Hogy micsoda? Ezt nem értem.

2 megolás van, vagy a "belső" c:\autoexec.bat-ba rakod bele a batch azon részét aminek "belül" kell végrehajtónia.
2. megoldás, hogy készítesz egy config filet és azzal hívod meg a dosbox-ot.
első körben ezeket tanulányozd át. a 3.ban amit te szeretnél, de az első kettő is kellhet a megértéséhez:
-
PumpkinSeed
addikt
-
Csontikka
aktív tag
Működik.
Viszont van egy ilyenem:
cd C:\Program Files (x86)\DOSBox-0.74
DOSBox.exe
echo SZAR!
mount G: E:\bc
G:
cd bc
cd binmo
bcEz megnyitja a DOS-box-ot, majd elhal. A DOSBox nem hajt végre semmit. Hogyan lehetne ezt megcsinálni?
úgy, hogy ezt a részt a dosbox autoexec.bat-jába rakod:
mount G: E:\bc
G:
cd bc
cd binmo
bc -
PumpkinSeed
addikt
Működik.
Viszont van egy ilyenem:
cd C:\Program Files (x86)\DOSBox-0.74
DOSBox.exe
echo SZAR!
mount G: E:\bc
G:
cd bc
cd binmo
bcEz megnyitja a DOS-box-ot, majd elhal. A DOSBox nem hajt végre semmit. Hogyan lehetne ezt megcsinálni?
-
Baryka007
addikt
Na én most megkapom az adatokat, de karakterkódolási hiba van benne, pedig a chcp 1250-et is beletettem. A kimenetben van a hiba.
Illetve az ipconfigos részt, még mindig nem kapom meg.

Így próbáltad már?
>> valami.txt systeminfo | find /i "Operßciˇs rendszer neve"
Így ki írja szöveges dokumentumba ( elvileg ékezetes betűkkel ) bár még nem teszteltem...
-
PumpkinSeed
addikt
Na én most megkapom az adatokat, de karakterkódolási hiba van benne, pedig a chcp 1250-et is beletettem. A kimenetben van a hiba.
Illetve az ipconfigos részt, még mindig nem kapom meg.

-
cigam
titán
-
Baryka007
addikt
-
cigam
titán
-
PumpkinSeed
addikt
Persze mert más a codepage. Ha bekapcsolod a viszhangot, te is látod, hogy az ékezet bekavar:
>systeminfo | find /i "Operßciˇs rendszer neve"
>systeminfo | find /i "Operßciˇs rendszer verziˇja"
>ipconfig | find /i "IPv4-cÝm"Ne notepaddal szerkeszd, hanem olyannal ami tud 852-es kódlapot használva menteni. pl AkelPad
Ez volt a probléma köszönöm.

-
Baryka007
addikt
Persze mert más a codepage. Ha bekapcsolod a viszhangot, te is látod, hogy az ékezet bekavar:
>systeminfo | find /i "Operßciˇs rendszer neve"
>systeminfo | find /i "Operßciˇs rendszer verziˇja"
>ipconfig | find /i "IPv4-cÝm"Ne notepaddal szerkeszd, hanem olyannal ami tud 852-es kódlapot használva menteni. pl AkelPad
vagy írd be a batch elejére hogy
chcp 1250és onnantól kezdve tudsz ékezetet gépelni a batchbe

-
cigam
titán
Egyesévvel megnéztem cmd-ben lefutnak és a kimenet rendesen kiírja a paramétereket, de batch file-be átültetve már nem megy.
Persze mert más a codepage. Ha bekapcsolod a viszhangot, te is látod, hogy az ékezet bekavar:
>systeminfo | find /i "Operßciˇs rendszer neve"
>systeminfo | find /i "Operßciˇs rendszer verziˇja"
>ipconfig | find /i "IPv4-cÝm"Ne notepaddal szerkeszd, hanem olyannal ami tud 852-es kódlapot használva menteni. pl AkelPad
-
PumpkinSeed
addikt
-
cigam
titán
Milyen (nyelvü) oprendszer? a sima sysinfo kimenetében van "Operációs rendszer neve"
Pl. W8.1 alatt a systeminfo | find /i "Os Name" működik. -
PumpkinSeed
addikt
-
cigam
titán
systeminfo | find /i "Operációs rendszer neve"
systeminfo | find /i "Operációs rendszer verziója"
ipconfig | find /i "IPv4-cím"Van egy batch filem amiben a fenti kódrészlet van. Lefut, de nem adja be. Ezután még egy pause van és vége.
Mit nem ad be?
-
PumpkinSeed
addikt
systeminfo | find /i "Operációs rendszer neve"
systeminfo | find /i "Operációs rendszer verziója"
ipconfig | find /i "IPv4-cím"Van egy batch filem amiben a fenti kódrészlet van. Lefut, de nem adja be. Ezután még egy pause van és vége.
-
Csontikka
aktív tag
Elnézésedet kérem amiért nem köszöntem meg a segítségedet.
De meg is csináltam a programot és egyből ki is ment a fejemből örömömben a köszönet. Ne haragudj! 
Viszont lenne még egy kérdésem... megoldható BATCHEL hogy X időközönként elinduljon és végrehajtson parancsokat ? Mindezt úgy hogy amíg nem nyílik fel X ideig a batch addig ne legyen az asztalomon egy fekete ablak vagy hasonló ?
nincsmit

örülök hogy ez is sikerült

-
Baryka007
addikt
Elnézésedet kérem amiért nem köszöntem meg a segítségedet.
De meg is csináltam a programot és egyből ki is ment a fejemből örömömben a köszönet. Ne haragudj! 
Viszont lenne még egy kérdésem... megoldható BATCHEL hogy X időközönként elinduljon és végrehajtson parancsokat ? Mindezt úgy hogy amíg nem nyílik fel X ideig a batch addig ne legyen az asztalomon egy fekete ablak vagy hasonló ?
Közben megoldottam a "Windows Feladat Ütemező" -vel

-
Baryka007
addikt
Elnézésedet kérem amiért nem köszöntem meg a segítségedet.
De meg is csináltam a programot és egyből ki is ment a fejemből örömömben a köszönet. Ne haragudj! 
Viszont lenne még egy kérdésem... megoldható BATCHEL hogy X időközönként elinduljon és végrehajtson parancsokat ? Mindezt úgy hogy amíg nem nyílik fel X ideig a batch addig ne legyen az asztalomon egy fekete ablak vagy hasonló ?
-
Csontikka
aktív tag
Tudnátok egy picit segíteni ? Kicsit elakadtam egyetlen paranccsal ... -.-
start /wait proba%x%.bat
miután bezáródott a proba%x%.bat a fő program megkérdezi hogy Befejezi a kötegfájl futtatástá? ( I / N ) megoldható lenne hogy ne tegye fel a kérdést és fusson tovább a program ilyenkor ?
Szia,
call-al hívd ne start /wait-el
call proba%x%.bat
-
Baryka007
addikt
Tudnátok egy picit segíteni ? Kicsit elakadtam egyetlen paranccsal ... -.-
start /wait proba%x%.bat
miután bezáródott a proba%x%.bat a fő program megkérdezi hogy Befejezi a kötegfájl futtatástá? ( I / N ) megoldható lenne hogy ne tegye fel a kérdést és fusson tovább a program ilyenkor ?
-
sztanozs
veterán
Sziasztok!
Egy telnet parancshoz kérném a segítségeteket. Egy SIGNAL XZY kódot kéne küldenem a localhostom n-edik portján futó alkalmazásnak, valamint ezt 120 másodpercenként újraküldeni (nem kell paraméter, majd behelyettesítem). A Telnet kliens már telepítve van, csak a szintaxist nem tudom. Tudnátok nekem segíteni?

netcat kell neked sztem, nem telnet...
-
r4z
nagyúr
Sziasztok!
Egy telnet parancshoz kérném a segítségeteket. Egy SIGNAL XZY kódot kéne küldenem a localhostom n-edik portján futó alkalmazásnak, valamint ezt 120 másodpercenként újraküldeni (nem kell paraméter, majd behelyettesítem). A Telnet kliens már telepítve van, csak a szintaxist nem tudom. Tudnátok nekem segíteni?

-
Paulo81
aktív tag
Nekem egy egyszerű probléma volt, amivel nem számoltam: a winmgmt-t letiltottam az asio állítás után, és enélkül a batch file nem tudja értelmezni azt a feltételt, hogy fut-e a foobar, szóval mindenképp 1 lett az errorlevel értéke.
Nálad fogalmam sincs mi okohatja, talán neked is valami win hülyeség...?
-
sztanozs
veterán
-
Baryka007
addikt
-
Paulo81
aktív tag
Nagy nehézségek árán sikerült működőképesre varázsolni a progit.

-
Csontikka
aktív tag
vagy ütemezz be egy robocopy-t háttérben futásra az a legegyszerűbb (elég ha egyszer indul induláskor, a MOT paraméterrel ismételgeti a másolást megadott időközönként)
pl.
robocopy /MOT:1 "E:" "c:\BACKUP" -
sztanozs
veterán
Időzített schedule-lel meg lehet oldani vagy folyamatosan futó batch-csel, de méginkább vbscript-tel.
-
Panthera
őstag
Sziasztok!
Háttérben szeretnék pendrive-ról másolni (arhiválni, de nem mindent) egy adott gépen, de külön program nélkül és a teljesen (láthatatlanul) a háttérben. Batch-ben meg lehet ezt oldani?
-
sztanozs
veterán
-
Paulo81
aktív tag
Látom elegetek lett belőlem!

-
Paulo81
aktív tag
Próbáld ki amit Sztanszos írt. Ha az nem jön be akkor az errorlevelt ne 0 ra hanem pl 3 ra állítsd és nézd meg úgy. Ha két batch fileból is meg akarod próbálni akkor úgy kéne hogy az egyik batchbe csak ennyi legyen mondjuk ha az első batchnek az a neve hogy elso.bat a másodiknak meg masodik.bat
-------elso.bat----------------------------------
tasklist | find "foobar2000.exe"
PING -n 1 127.0.0.1>nul
Del test.txt
echo >> test.txt %errorlevel%
echo %errorlevel% értéke
set a=1
masodik.batA másikba az eldöntéshez meg ezt írod oda:
-------masodik.bat-----------------------------if %a% == 1 goto fute (ezt a program leges leges leg elejére írd oda)
:FUTE
if %a% NEQ 1 elso.bat
FOR /f "tokens=1" %%A IN (test.txt) do (
if %%A == 0 goto asio
if %%A == 1 goto vege
)és még annyit tegyél meg hogy az ASIO végére és a VEGE (végére) a goto fute előtt!
írd ezt oda:
set a=0És ez nagyjából azt csinálja hogy a "masodik.bat" lesz a te főprogramod és ha a fute részre ér akkor először át lép az "elso.bat" fileba ami megvizsgálja hogy fut -e vagy sem... majd visszalép a "masodik.bat" ba és ott a kapott értékekből fut tovább a program... Majd a továbbá futott ciklusok végén nullázza a kapott értéket és vissza ugrik az elso.bat fileba ami megint megvizsgálja... és ez addig megy amig a VEGE ciklusban vége nem lesz a programnak. (Legalábbis elméletileg ezt kéne csinálnia... )

Hogy állítsam az errorlevelt 3-ra? Set-tel nekem nem működött még a 0-ra állítás sem.
Ha Sztanszos elmagyarázza a setlocal-t, megpróbálom
Bele lehet csempészni még ebbe a programba, hogy a legelején is megnézze, hogy fut-e a foobar, és ha nem, akkor lépjen egy figyelmeztető címkére addig, amíg elindítom?
(Mert már jártam úgy, hogy nem indítottam el a foobar-t és úgy összekavar mindent) -
Paulo81
aktív tag
-
Baryka007
addikt
Na még egy utolsó lendületet vettem, és már azt elértem, hogy lefut a loop, viszont most nem lép ki!

Eddig az volt a gond, hogy a fute címkére ha ráugrott az asio után, a tasklist | find nem tudott lefutni abszolút, mert az asio címke letiltotta a winmgmt-t, ezért futott le csak egyszer.
Most gyönyörűen mindig lefut az asio, viszont, ha kilépek a foobar-ból, azután is 0 marad! a tasklist | find errorlevel értéke, de miért?
Ha ez meg lenne oldva, akkor nagyon jó lenne.
A fute címke kivételével mindenhol a neten talált módszerrel elméletileg lenullázom az errolevel értékét, mert máskor nem jó, ha nem 0. De remélem nem ez van valahogy hatással a fute címkére?
Még majd megpróbálom, hogy külön batch-ből. Mt írjak a külön batch-be, a komplett fute címkét?Most így néz ki a program:
@echo off
sc config Winmgmt start= demand || cmd /c "exit /b 0"
cmd /c "exit /b 0"devcon disable HDAUDIO\FUNC_01* || cmd /c "exit /b 0"
cmd /c "exit /b 0
devcon enable USB\Class_01 || cmd /c "exit /b 0
cmd /c "exit /b 0for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq psxss.exe"') do process -k %%G || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq igfxsrvc.exe"') do process -k %%G || cmd /c "exit /b 0"
cmd /c "exit /b 0for /f "tokens=2" %%G in ('tasklist /nh') do process -a %%G 1 || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh') do process -p %%G low 0 || cmd /c "exit /b 0"
cmd /c "exit /b 0REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 10
REM echo Set foobar2000.exe to CPU 1
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -p %%G realtime 31
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 011 process -a "foobar2000.exe" 011 || cmd /c "exit /b 0"
cmd /c "exit /b 0
process -p "foobar2000.exe" realtime 31 || cmd /c "exit /b 0"
cmd /c "exit /b 0for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011 || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31 || cmd /c "exit /b 0"
cmd /c "exit /b 0echo A process allitgatasok utan az errolevel erteke: %errorlevel%
pausecls
echo ALLITSD LE AZ MMCSS-T, ha ok, nyomj meg egy gombot...
pausesc config MMCSS start= disabled || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011 || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31 || cmd /c "exit /b 0"
cmd /c "exit /b 0echo Az MMCSS utan az errolevel erteke: %errorlevel%
pausecls
echo asio realtime beállítás minden egyes gombnyomásra
pause
goto fute:fute
REM if exist Log.txt DEL Log.txt
REM cmd /c "exit /b 0
sc config Winmgmt start= demand || cmd /c "exit /b 0"
cmd /c "exit /b 0
tasklist | find "foobar2000.exe"
REM tasklist /nh /fi "imagename eq foobar2000.exe"REM if %errorlevel% == 0 echo >>Log.txt fut
REM if %errorlevel% == 1 echo >>Log.txt nemfutecho A FOOBAR VIZSGALAT UTAN az errolevel erteke: %errorlevel%
pause
if %errorlevel% == 0 goto asio
if %errorlevel% == 1 goto vegeREM if %errorlevel% == 0 set valami=2
REM if %errorlevel% == 1 set valami=3
REM if %valami% == 2 goto asio
REM if %valami% == 3 goto vege
REM goto :futeREM FOR /f "tokens=1" %%A IN (Log.txt) do (
REM if %%A == fut goto asio
REm if %%A == nemfut goto vege):asio
sc config Winmgmt start= demand || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq ASIOhost32.exe"') do process -p %%G realtime 31 || cmd /c "exit /b 0"
cmd /c "exit /b 0
sc config Winmgmt start= disabled || cmd /c "exit /b 0"
cmd /c "exit /b 0
net stop Winmgmt || cmd /c "exit /b 0"
cmd /c "exit /b 0echo Az asio lefutasa után az errolevel erteke: %errorlevel%
pause
REM set errorlevel=0
REM echo az errorlevel 0-ra valo allitasara valo kiserlet utan
REM echo az errolevel erteke: %errorlevel% (Nem jó módszer)
REM pause
goto fute:vege
echo A VEGERE UGROTTAM!!!!!!!! Az errolevel erteke: %errorlevel%
pause
sc config Winmgmt start= demand
sc config MMCSS start= demand
devcon disable USB\Class_01*
devcon enable HDAUDIO\FUNC_01*
REM net start MMCSS
REM net start Audiosrvexit /b 0
Próbáld ki amit Sztanszos írt. Ha az nem jön be akkor az errorlevelt ne 0 ra hanem pl 3 ra állítsd és nézd meg úgy. Ha két batch fileból is meg akarod próbálni akkor úgy kéne hogy az egyik batchbe csak ennyi legyen mondjuk ha az első batchnek az a neve hogy elso.bat a másodiknak meg masodik.bat
-------elso.bat----------------------------------
tasklist | find "foobar2000.exe"
PING -n 1 127.0.0.1>nul
Del test.txt
echo >> test.txt %errorlevel%
echo %errorlevel% értéke
set a=1
masodik.batA másikba az eldöntéshez meg ezt írod oda:
-------masodik.bat-----------------------------if %a% == 1 goto fute (ezt a program leges leges leg elejére írd oda)
:FUTE
if %a% NEQ 1 elso.bat
FOR /f "tokens=1" %%A IN (test.txt) do (
if %%A == 0 goto asio
if %%A == 1 goto vege
)és még annyit tegyél meg hogy az ASIO végére és a VEGE (végére) a goto fute előtt!
írd ezt oda:
set a=0És ez nagyjából azt csinálja hogy a "masodik.bat" lesz a te főprogramod és ha a fute részre ér akkor először át lép az "elso.bat" fileba ami megvizsgálja hogy fut -e vagy sem... majd visszalép a "masodik.bat" ba és ott a kapott értékekből fut tovább a program... Majd a továbbá futott ciklusok végén nullázza a kapott értéket és vissza ugrik az elso.bat fileba ami megint megvizsgálja... és ez addig megy amig a VEGE ciklusban vége nem lesz a programnak. (Legalábbis elméletileg ezt kéne csinálnia... )

-
sztanozs
veterán
Na még egy utolsó lendületet vettem, és már azt elértem, hogy lefut a loop, viszont most nem lép ki!

Eddig az volt a gond, hogy a fute címkére ha ráugrott az asio után, a tasklist | find nem tudott lefutni abszolút, mert az asio címke letiltotta a winmgmt-t, ezért futott le csak egyszer.
Most gyönyörűen mindig lefut az asio, viszont, ha kilépek a foobar-ból, azután is 0 marad! a tasklist | find errorlevel értéke, de miért?
Ha ez meg lenne oldva, akkor nagyon jó lenne.
A fute címke kivételével mindenhol a neten talált módszerrel elméletileg lenullázom az errolevel értékét, mert máskor nem jó, ha nem 0. De remélem nem ez van valahogy hatással a fute címkére?
Még majd megpróbálom, hogy külön batch-ből. Mt írjak a külön batch-be, a komplett fute címkét?Most így néz ki a program:
@echo off
sc config Winmgmt start= demand || cmd /c "exit /b 0"
cmd /c "exit /b 0"devcon disable HDAUDIO\FUNC_01* || cmd /c "exit /b 0"
cmd /c "exit /b 0
devcon enable USB\Class_01 || cmd /c "exit /b 0
cmd /c "exit /b 0for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq psxss.exe"') do process -k %%G || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq igfxsrvc.exe"') do process -k %%G || cmd /c "exit /b 0"
cmd /c "exit /b 0for /f "tokens=2" %%G in ('tasklist /nh') do process -a %%G 1 || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh') do process -p %%G low 0 || cmd /c "exit /b 0"
cmd /c "exit /b 0REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 10
REM echo Set foobar2000.exe to CPU 1
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -p %%G realtime 31
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 011 process -a "foobar2000.exe" 011 || cmd /c "exit /b 0"
cmd /c "exit /b 0
process -p "foobar2000.exe" realtime 31 || cmd /c "exit /b 0"
cmd /c "exit /b 0for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011 || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31 || cmd /c "exit /b 0"
cmd /c "exit /b 0echo A process allitgatasok utan az errolevel erteke: %errorlevel%
pausecls
echo ALLITSD LE AZ MMCSS-T, ha ok, nyomj meg egy gombot...
pausesc config MMCSS start= disabled || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011 || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31 || cmd /c "exit /b 0"
cmd /c "exit /b 0echo Az MMCSS utan az errolevel erteke: %errorlevel%
pausecls
echo asio realtime beállítás minden egyes gombnyomásra
pause
goto fute:fute
REM if exist Log.txt DEL Log.txt
REM cmd /c "exit /b 0
sc config Winmgmt start= demand || cmd /c "exit /b 0"
cmd /c "exit /b 0
tasklist | find "foobar2000.exe"
REM tasklist /nh /fi "imagename eq foobar2000.exe"REM if %errorlevel% == 0 echo >>Log.txt fut
REM if %errorlevel% == 1 echo >>Log.txt nemfutecho A FOOBAR VIZSGALAT UTAN az errolevel erteke: %errorlevel%
pause
if %errorlevel% == 0 goto asio
if %errorlevel% == 1 goto vegeREM if %errorlevel% == 0 set valami=2
REM if %errorlevel% == 1 set valami=3
REM if %valami% == 2 goto asio
REM if %valami% == 3 goto vege
REM goto :futeREM FOR /f "tokens=1" %%A IN (Log.txt) do (
REM if %%A == fut goto asio
REm if %%A == nemfut goto vege):asio
sc config Winmgmt start= demand || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq ASIOhost32.exe"') do process -p %%G realtime 31 || cmd /c "exit /b 0"
cmd /c "exit /b 0
sc config Winmgmt start= disabled || cmd /c "exit /b 0"
cmd /c "exit /b 0
net stop Winmgmt || cmd /c "exit /b 0"
cmd /c "exit /b 0echo Az asio lefutasa után az errolevel erteke: %errorlevel%
pause
REM set errorlevel=0
REM echo az errorlevel 0-ra valo allitasara valo kiserlet utan
REM echo az errolevel erteke: %errorlevel% (Nem jó módszer)
REM pause
goto fute:vege
echo A VEGERE UGROTTAM!!!!!!!! Az errolevel erteke: %errorlevel%
pause
sc config Winmgmt start= demand
sc config MMCSS start= demand
devcon disable USB\Class_01*
devcon enable HDAUDIO\FUNC_01*
REM net start MMCSS
REM net start Audiosrvexit /b 0
lehet, hogy setlocal-lal kellene játszani cmd /c "exit /b 0 helyett.
-
Paulo81
aktív tag
Na még egy utolsó lendületet vettem, és már azt elértem, hogy lefut a loop, viszont most nem lép ki!

Eddig az volt a gond, hogy a fute címkére ha ráugrott az asio után, a tasklist | find nem tudott lefutni abszolút, mert az asio címke letiltotta a winmgmt-t, ezért futott le csak egyszer.
Most gyönyörűen mindig lefut az asio, viszont, ha kilépek a foobar-ból, azután is 0 marad! a tasklist | find errorlevel értéke, de miért?
Ha ez meg lenne oldva, akkor nagyon jó lenne.
A fute címke kivételével mindenhol a neten talált módszerrel elméletileg lenullázom az errolevel értékét, mert máskor nem jó, ha nem 0. De remélem nem ez van valahogy hatással a fute címkére?
Még majd megpróbálom, hogy külön batch-ből. Mt írjak a külön batch-be, a komplett fute címkét?Most így néz ki a program:
@echo off
sc config Winmgmt start= demand || cmd /c "exit /b 0"
cmd /c "exit /b 0"devcon disable HDAUDIO\FUNC_01* || cmd /c "exit /b 0"
cmd /c "exit /b 0
devcon enable USB\Class_01 || cmd /c "exit /b 0
cmd /c "exit /b 0for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq psxss.exe"') do process -k %%G || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq igfxsrvc.exe"') do process -k %%G || cmd /c "exit /b 0"
cmd /c "exit /b 0for /f "tokens=2" %%G in ('tasklist /nh') do process -a %%G 1 || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh') do process -p %%G low 0 || cmd /c "exit /b 0"
cmd /c "exit /b 0REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 10
REM echo Set foobar2000.exe to CPU 1
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -p %%G realtime 31
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 011 process -a "foobar2000.exe" 011 || cmd /c "exit /b 0"
cmd /c "exit /b 0
process -p "foobar2000.exe" realtime 31 || cmd /c "exit /b 0"
cmd /c "exit /b 0for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011 || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31 || cmd /c "exit /b 0"
cmd /c "exit /b 0echo A process allitgatasok utan az errolevel erteke: %errorlevel%
pausecls
echo ALLITSD LE AZ MMCSS-T, ha ok, nyomj meg egy gombot...
pausesc config MMCSS start= disabled || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011 || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31 || cmd /c "exit /b 0"
cmd /c "exit /b 0echo Az MMCSS utan az errolevel erteke: %errorlevel%
pausecls
echo asio realtime beállítás minden egyes gombnyomásra
pause
goto fute:fute
REM if exist Log.txt DEL Log.txt
REM cmd /c "exit /b 0
sc config Winmgmt start= demand || cmd /c "exit /b 0"
cmd /c "exit /b 0
tasklist | find "foobar2000.exe"
REM tasklist /nh /fi "imagename eq foobar2000.exe"REM if %errorlevel% == 0 echo >>Log.txt fut
REM if %errorlevel% == 1 echo >>Log.txt nemfutecho A FOOBAR VIZSGALAT UTAN az errolevel erteke: %errorlevel%
pause
if %errorlevel% == 0 goto asio
if %errorlevel% == 1 goto vegeREM if %errorlevel% == 0 set valami=2
REM if %errorlevel% == 1 set valami=3
REM if %valami% == 2 goto asio
REM if %valami% == 3 goto vege
REM goto :futeREM FOR /f "tokens=1" %%A IN (Log.txt) do (
REM if %%A == fut goto asio
REm if %%A == nemfut goto vege):asio
sc config Winmgmt start= demand || cmd /c "exit /b 0"
cmd /c "exit /b 0
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq ASIOhost32.exe"') do process -p %%G realtime 31 || cmd /c "exit /b 0"
cmd /c "exit /b 0
sc config Winmgmt start= disabled || cmd /c "exit /b 0"
cmd /c "exit /b 0
net stop Winmgmt || cmd /c "exit /b 0"
cmd /c "exit /b 0echo Az asio lefutasa után az errolevel erteke: %errorlevel%
pause
REM set errorlevel=0
REM echo az errorlevel 0-ra valo allitasara valo kiserlet utan
REM echo az errolevel erteke: %errorlevel% (Nem jó módszer)
REM pause
goto fute:vege
echo A VEGERE UGROTTAM!!!!!!!! Az errolevel erteke: %errorlevel%
pause
sc config Winmgmt start= demand
sc config MMCSS start= demand
devcon disable USB\Class_01*
devcon enable HDAUDIO\FUNC_01*
REM net start MMCSS
REM net start Audiosrvexit /b 0
-
Paulo81
aktív tag
Majd még kipróbálom, de kicsit elment a kedvem most a batch programozástól. Azon gondolkodom, hogy akár felelevenítem a tanultakat és turbo pascalban megírom, sokkal könnyebben lehetne kezelni ezeket az eseményeket.
-
Baryka007
addikt
Akkor már csak az jut eszembe hogy két batch fileból kéne összehozni a másik batchbe leírod azt a parancsot ami a Log.txt be kiírja hogy fut vagy nemfut a fő batch file meg azt nézi hogy az előző mit írt oda be neki. És így talán a másik batch filenak nem tud bezavarni semmi....
-
Paulo81
aktív tag
És tényleg nem működik, vagyis az első loop után a végére megy.
Azzal, hogy beírtam a fute elejére és az asio végére, hogy
cmd /c "exit /b 0"
ezzel már KÉTSZER lefutott az asio, de harmadszorra kilép...Mi ebben a logika?
-
Paulo81
aktív tag
@echo off
sc config Winmgmt start= demand
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq psxss.exe"') do process -k %%G
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq igfxsrvc.exe"') do process -k %%G
for /f "tokens=2" %%G in ('tasklist /nh') do process -a %%G 1
for /f "tokens=2" %%G in ('tasklist /nh') do process -p %%G low 0
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 10
REM echo Set foobar2000.exe to CPU 1
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -p %%G realtime 31
process -p "foobar2000.exe" realtime 31
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 011
process -a "foobar2000.exe" 011
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011
cls
echo mmcss ALLITSD LE AZ MMCSS-T, HA OK NYOMJ MEG EGY GOMBOT!
pause
sc config MMCSS start= disabled
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011
cls
echo asio realtime beállítás minden egyes gombnyomásra
pause
goto fute
:fute
if exist Log.txt DEL Log.txt
tasklist | find "foobar2000.exe"
if %errorlevel% == 0 echo >>Log.txt fut
if %errorlevel% == 1 echo >>Log.txt nemfut
FOR /f "tokens=1" %%A IN (Log.txt) do (
if %%A == fut goto asio
if %%A == nemfut goto vege
)
goto fute
:asio
sc config Winmgmt start= demand
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq ASIOhost32.exe"') do process -p %%G realtime 31
sc config Winmgmt start= disabled
net stop Winmgmt
pause
goto fute
:vege
sc config Winmgmt start= demand
sc config MMCSS start= demand
REM net start MMCSS
REM net start AudiosrvPróbáld ki így. Így működnie kell

Őőő, nem akarok belekötni, de ez "az ellen nem vééééééd" már ránézésre sem, hogy ha egyszer már az errorlevel nem 0 lett, csak más metódussal vizsgálja az értékét.
-
Baryka007
addikt
Hát az a helyzet, hogy egyszer lefut az asio-s rész, másodszora már a végére ugrik, de nekem sincs fogalmam, hogy miért. Valami más módszer kell.
Szeretnék még bonyolítani az egészen.
Rögtön indulás után is vizsgálja meg, hogy elindítottam-e a foobar-t. Ha véletlenül nem és úgy akarom futtatni, akkor szólítson fel rá és addig ne induljon el.@echo off
sc config Winmgmt start= demand
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq psxss.exe"') do process -k %%G
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq igfxsrvc.exe"') do process -k %%G
for /f "tokens=2" %%G in ('tasklist /nh') do process -a %%G 1
for /f "tokens=2" %%G in ('tasklist /nh') do process -p %%G low 0
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 10
REM echo Set foobar2000.exe to CPU 1
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -p %%G realtime 31
process -p "foobar2000.exe" realtime 31
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 011
process -a "foobar2000.exe" 011
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011
cls
echo mmcss ALLITSD LE AZ MMCSS-T, HA OK NYOMJ MEG EGY GOMBOT!
pause
sc config MMCSS start= disabled
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011
cls
echo asio realtime beállítás minden egyes gombnyomásra
pause
goto fute
:fute
if exist Log.txt DEL Log.txt
tasklist | find "foobar2000.exe"
if %errorlevel% == 0 echo >>Log.txt fut
if %errorlevel% == 1 echo >>Log.txt nemfut
FOR /f "tokens=1" %%A IN (Log.txt) do (
if %%A == fut goto asio
if %%A == nemfut goto vege
)
goto fute
:asio
sc config Winmgmt start= demand
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq ASIOhost32.exe"') do process -p %%G realtime 31
sc config Winmgmt start= disabled
net stop Winmgmt
pause
goto fute
:vege
sc config Winmgmt start= demand
sc config MMCSS start= demand
REM net start MMCSS
REM net start AudiosrvPróbáld ki így. Így működnie kell

-
Paulo81
aktív tag
Hát az a helyzet, hogy egyszer lefut az asio-s rész, másodszora már a végére ugrik, de nekem sincs fogalmam, hogy miért. Valami más módszer kell.
Szeretnék még bonyolítani az egészen.
Rögtön indulás után is vizsgálja meg, hogy elindítottam-e a foobar-t. Ha véletlenül nem és úgy akarom futtatni, akkor szólítson fel rá és addig ne induljon el. -
Baryka007
addikt
Elvileg a tasklist után változnia kéne az errorlevelnek, szóval ha nem jön be ez a módszer akkor erősen gondolkodnom kell rajta hogy miért NEM változik meg a tasklist után... De van megoldásom már arra a módszerre is

-
Paulo81
aktív tag
-
Baryka007
addikt
@echo off
sc config Winmgmt start= demand
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq psxss.exe"') do process -k %%G
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq igfxsrvc.exe"') do process -k %%G
for /f "tokens=2" %%G in ('tasklist /nh') do process -a %%G 1
for /f "tokens=2" %%G in ('tasklist /nh') do process -p %%G low 0
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 10
REM echo Set foobar2000.exe to CPU 1
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -p %%G realtime 31
process -p "foobar2000.exe" realtime 31
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 011
process -a "foobar2000.exe" 011
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011
cls
echo mmcss ALLITSD LE AZ MMCSS-T, HA OK NYOMJ MEG EGY GOMBOT!
pause
sc config MMCSS start= disabled
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011
cls
echo asio realtime beállítás minden egyes gombnyomásra
pause
goto fute
:fute
tasklist | find "foobar2000.exe"
if %errorlevel% == 0 set valami=2
if %errorlevel% == 1 set valami=3
if %valami% == 2 goto asio
if %valami% == 3 goto vege
:asio
sc config Winmgmt start= demand
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq ASIOhost32.exe"') do process -p %%G realtime 31
sc config Winmgmt start= disabled
net stop Winmgmt
pause
goto fute
:vege
sc config Winmgmt start= demand
sc config MMCSS start= demand
REM net start MMCSS
REM net start AudiosrvNah elvileg így sehogyan sem zavarhat be az errorlevel a programnak. Próbáld ki így

Már nem tudtam szerkeszteni esetleg
ez alá még írd be ezt: goto fute
így:
if %valami% == 2 goto asio
if %valami% == 3 goto vege
goto fute -
Baryka007
addikt
Na, egy kicsit bonyolódnak a dolgok.Elmondom mit szeretnék:
Az elején kilő egy-két provesst és minden process alacsony prioritású lesz és egy szálon fut, ez OK.
A foobart és az audiodg-exe-t realtime-ra rakja és visszarakja két szálra.Mivel nekem nem kell az MMCSS mert bekavar a hangba főleg ape-nél, ezért értelemszerűen csinálja dolgokat, az audiodg van, hogy nem indul el vagy leáll, ezért mégegyszer megcsinálja. (Azért kell ezt az MMCSS-sel így csinálni, mert a szolgáltatás nem lehet leállítani, mert a hangvégpontépítő és az audio szolgáltatástól függ, tehát rámegyek a folyamatra a feladatkezelőből éa úgy állítom le. Viszont le kell tiltani, hogy ne induljon el még 1x)
Szóval még eddig is remekül működik.Ezután amikor elindítok egy zenét, az asio-t szintén reíltimera kell állítani, de ezt viszont sajnos minden egyes alkalommal meg kell csinálni. Ha leállítom a zenét az asio32host exe is leáll, és legközelebb sajnos nem indul realtime módban. Ezért egy loop-ot szeretnék, ami minden gombnyomásra megcsinálja. (A winmgmt is bekavar a hangba, azért tiltom le, viszont a process.exe normális futásához kell,
)
Na szóval ha külön csak megcsinálom az asio-s loop-ot akkor simán működik, de gondoltam az is épüljön bele, hogy figyelje hogy fut-e a foobar, és ha már bezártam, akkor gombnyomás után hajtsa végre az visszaállító dolgokat a végén.
Szerintem az errorleveles dolog kavar bele a levesbe, mert miközben szereksztem a batch-es és másodszorra elindítom, akkor már ha nem fut a foobar akkor is futónak érzékeli. Valahogy inicializálni kéne az errorlevelt- de eddig nem sikerült.
Hálás lennék, ha átnéznéd, hogy mi a bibi ls kipróbálnád - ha tudod.

@echo off
sc config Winmgmt start= demand
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq psxss.exe"') do process -k %%G
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq igfxsrvc.exe"') do process -k %%Gfor /f "tokens=2" %%G in ('tasklist /nh') do process -a %%G 1
for /f "tokens=2" %%G in ('tasklist /nh') do process -p %%G low 0REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 10
REM echo Set foobar2000.exe to CPU 1REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -p %%G realtime 31
process -p "foobar2000.exe" realtime 31REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 011
process -a "foobar2000.exe" 011for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011cls
echo mmcss ALLITSD LE AZ MMCSS-T, HA OK NYOMJ MEG EGY GOMBOT!
pause
sc config MMCSS start= disabled
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011cls
echo asio realtime beállítás minden egyes gombnyomásra
set errorlevel=0
pause
goto fute
:fute
tasklist | find "foobar2000.exe"
if %errorlevel% == 0 goto asio
if %errorlevel% == 1 goto vege:asio
sc config Winmgmt start= demand
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq ASIOhost32.exe"') do process -p %%G realtime 31
sc config Winmgmt start= disabled
net stop Winmgmtset errorlevel=0
pause
goto fute
:vege
sc config Winmgmt start= demand
sc config MMCSS start= demand
REM net start MMCSS
REM net start Audiosrv@echo off
sc config Winmgmt start= demand
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq psxss.exe"') do process -k %%G
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq igfxsrvc.exe"') do process -k %%G
for /f "tokens=2" %%G in ('tasklist /nh') do process -a %%G 1
for /f "tokens=2" %%G in ('tasklist /nh') do process -p %%G low 0
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 10
REM echo Set foobar2000.exe to CPU 1
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -p %%G realtime 31
process -p "foobar2000.exe" realtime 31
REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 011
process -a "foobar2000.exe" 011
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011
cls
echo mmcss ALLITSD LE AZ MMCSS-T, HA OK NYOMJ MEG EGY GOMBOT!
pause
sc config MMCSS start= disabled
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011
cls
echo asio realtime beállítás minden egyes gombnyomásra
pause
goto fute
:fute
tasklist | find "foobar2000.exe"
if %errorlevel% == 0 set valami=2
if %errorlevel% == 1 set valami=3
if %valami% == 2 goto asio
if %valami% == 3 goto vege
:asio
sc config Winmgmt start= demand
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq ASIOhost32.exe"') do process -p %%G realtime 31
sc config Winmgmt start= disabled
net stop Winmgmt
pause
goto fute
:vege
sc config Winmgmt start= demand
sc config MMCSS start= demand
REM net start MMCSS
REM net start AudiosrvNah elvileg így sehogyan sem zavarhat be az errorlevel a programnak. Próbáld ki így

-
Paulo81
aktív tag
Na, egy kicsit bonyolódnak a dolgok.Elmondom mit szeretnék:
Az elején kilő egy-két provesst és minden process alacsony prioritású lesz és egy szálon fut, ez OK.
A foobart és az audiodg-exe-t realtime-ra rakja és visszarakja két szálra.Mivel nekem nem kell az MMCSS mert bekavar a hangba főleg ape-nél, ezért értelemszerűen csinálja dolgokat, az audiodg van, hogy nem indul el vagy leáll, ezért mégegyszer megcsinálja. (Azért kell ezt az MMCSS-sel így csinálni, mert a szolgáltatás nem lehet leállítani, mert a hangvégpontépítő és az audio szolgáltatástól függ, tehát rámegyek a folyamatra a feladatkezelőből éa úgy állítom le. Viszont le kell tiltani, hogy ne induljon el még 1x)
Szóval még eddig is remekül működik.Ezután amikor elindítok egy zenét, az asio-t szintén reíltimera kell állítani, de ezt viszont sajnos minden egyes alkalommal meg kell csinálni. Ha leállítom a zenét az asio32host exe is leáll, és legközelebb sajnos nem indul realtime módban. Ezért egy loop-ot szeretnék, ami minden gombnyomásra megcsinálja. (A winmgmt is bekavar a hangba, azért tiltom le, viszont a process.exe normális futásához kell,
)
Na szóval ha külön csak megcsinálom az asio-s loop-ot akkor simán működik, de gondoltam az is épüljön bele, hogy figyelje hogy fut-e a foobar, és ha már bezártam, akkor gombnyomás után hajtsa végre az visszaállító dolgokat a végén.
Szerintem az errorleveles dolog kavar bele a levesbe, mert miközben szereksztem a batch-es és másodszorra elindítom, akkor már ha nem fut a foobar akkor is futónak érzékeli. Valahogy inicializálni kéne az errorlevelt- de eddig nem sikerült.
Hálás lennék, ha átnéznéd, hogy mi a bibi ls kipróbálnád - ha tudod.

@echo off
sc config Winmgmt start= demand
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq psxss.exe"') do process -k %%G
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq igfxsrvc.exe"') do process -k %%Gfor /f "tokens=2" %%G in ('tasklist /nh') do process -a %%G 1
for /f "tokens=2" %%G in ('tasklist /nh') do process -p %%G low 0REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 10
REM echo Set foobar2000.exe to CPU 1REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -p %%G realtime 31
process -p "foobar2000.exe" realtime 31REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 011
process -a "foobar2000.exe" 011for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011cls
echo mmcss ALLITSD LE AZ MMCSS-T, HA OK NYOMJ MEG EGY GOMBOT!
pause
sc config MMCSS start= disabled
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011cls
echo asio realtime beállítás minden egyes gombnyomásra
set errorlevel=0
pause
goto fute
:fute
tasklist | find "foobar2000.exe"
if %errorlevel% == 0 goto asio
if %errorlevel% == 1 goto vege:asio
sc config Winmgmt start= demand
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq ASIOhost32.exe"') do process -p %%G realtime 31
sc config Winmgmt start= disabled
net stop Winmgmtset errorlevel=0
pause
goto fute
:vege
sc config Winmgmt start= demand
sc config MMCSS start= demand
REM net start MMCSS
REM net start AudiosrvTehát a lényeg, hiogy ha az asio-s loop hibát is dobna ki, akkor is menjen elölről a loop, amíg be nem záródik a foobar. Remélem érthető.

A set errolevel=0 nem működik.
Még ezzel próbálkoztam netes keresgélés után:
FOR %%A IN (1 10 100) DO SET ERR%%A=0
de nem jó.
Meg az sem, hogy minden parancs után odaírom, hogy > nul, akkor még a parancsok sem működnek normálisan. -
Paulo81
aktív tag
Na, egy kicsit bonyolódnak a dolgok.Elmondom mit szeretnék:
Az elején kilő egy-két provesst és minden process alacsony prioritású lesz és egy szálon fut, ez OK.
A foobart és az audiodg-exe-t realtime-ra rakja és visszarakja két szálra.Mivel nekem nem kell az MMCSS mert bekavar a hangba főleg ape-nél, ezért értelemszerűen csinálja dolgokat, az audiodg van, hogy nem indul el vagy leáll, ezért mégegyszer megcsinálja. (Azért kell ezt az MMCSS-sel így csinálni, mert a szolgáltatás nem lehet leállítani, mert a hangvégpontépítő és az audio szolgáltatástól függ, tehát rámegyek a folyamatra a feladatkezelőből éa úgy állítom le. Viszont le kell tiltani, hogy ne induljon el még 1x)
Szóval még eddig is remekül működik.Ezután amikor elindítok egy zenét, az asio-t szintén reíltimera kell állítani, de ezt viszont sajnos minden egyes alkalommal meg kell csinálni. Ha leállítom a zenét az asio32host exe is leáll, és legközelebb sajnos nem indul realtime módban. Ezért egy loop-ot szeretnék, ami minden gombnyomásra megcsinálja. (A winmgmt is bekavar a hangba, azért tiltom le, viszont a process.exe normális futásához kell,
)
Na szóval ha külön csak megcsinálom az asio-s loop-ot akkor simán működik, de gondoltam az is épüljön bele, hogy figyelje hogy fut-e a foobar, és ha már bezártam, akkor gombnyomás után hajtsa végre az visszaállító dolgokat a végén.
Szerintem az errorleveles dolog kavar bele a levesbe, mert miközben szereksztem a batch-es és másodszorra elindítom, akkor már ha nem fut a foobar akkor is futónak érzékeli. Valahogy inicializálni kéne az errorlevelt- de eddig nem sikerült.
Hálás lennék, ha átnéznéd, hogy mi a bibi ls kipróbálnád - ha tudod.

@echo off
sc config Winmgmt start= demand
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq psxss.exe"') do process -k %%G
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq igfxsrvc.exe"') do process -k %%Gfor /f "tokens=2" %%G in ('tasklist /nh') do process -a %%G 1
for /f "tokens=2" %%G in ('tasklist /nh') do process -p %%G low 0REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 10
REM echo Set foobar2000.exe to CPU 1REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -p %%G realtime 31
process -p "foobar2000.exe" realtime 31REM for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do process -a %%G 011
process -a "foobar2000.exe" 011for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011cls
echo mmcss ALLITSD LE AZ MMCSS-T, HA OK NYOMJ MEG EGY GOMBOT!
pause
sc config MMCSS start= disabled
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -p %%G realtime 31
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq audiodg.exe"') do process -a %%G 011cls
echo asio realtime beállítás minden egyes gombnyomásra
set errorlevel=0
pause
goto fute
:fute
tasklist | find "foobar2000.exe"
if %errorlevel% == 0 goto asio
if %errorlevel% == 1 goto vege:asio
sc config Winmgmt start= demand
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq ASIOhost32.exe"') do process -p %%G realtime 31
sc config Winmgmt start= disabled
net stop Winmgmtset errorlevel=0
pause
goto fute
:vege
sc config Winmgmt start= demand
sc config MMCSS start= demand
REM net start MMCSS
REM net start Audiosrv -
Baryka007
addikt
-
Paulo81
aktív tag
Ennél létezik egy ezerszer könnyebb megoldás!
Íme:
echo off
cls
:start
tasklist | find "calc.exe"
REM ha calc fut akkor az errorlevel 0 lesz
REM ha calc nem fut akkor az errorlevel 1 lesz
if %errorlevel% == 0 goto fut
if %errorlevel% == 1 goto nemfut
goto start
:fut
ECHO FUT
echo.
PING -n 3 127.0.0.1>nul
goto start
:nemfut
echo NEM FUT
echo.
PING -n 3 127.0.0.1>nul
goto startÉn calc.exe vel teszteltem tökéletes

Ez működik, köszönöm szépen!

-
Paulo81
aktív tag
@echo off
:teszt_eleje
for /F "tokens=1,*" %%G in ('tasklist /nh /fi "imagename eq iexplore.exe"') do (
set van=1
)
if defined van (
echo "fut az explorer..."
REM SLEEP 10:
PING -n 11 127.0.0.1>nul
goto teszt_eleje
) else (
echo "NEM fut az explorer"
REM SLEEP 10:
PING -n 11 127.0.0.1>nul
goto teszt_eleje
)Nincs fent nálam a foobar - IE-vel tesztetem - de tetszőlegesen módosítható...
Ez nem működik, ha nem fut, akkor is fut a program szerint

-
Baryka007
addikt
@echo off
:teszt_eleje
for /F "tokens=1,*" %%G in ('tasklist /nh /fi "imagename eq iexplore.exe"') do (
set van=1
)
if defined van (
echo "fut az explorer..."
REM SLEEP 10:
PING -n 11 127.0.0.1>nul
goto teszt_eleje
) else (
echo "NEM fut az explorer"
REM SLEEP 10:
PING -n 11 127.0.0.1>nul
goto teszt_eleje
)Nincs fent nálam a foobar - IE-vel tesztetem - de tetszőlegesen módosítható...
Ennél létezik egy ezerszer könnyebb megoldás!
Íme:
echo off
cls
:start
tasklist | find "calc.exe"
REM ha calc fut akkor az errorlevel 0 lesz
REM ha calc nem fut akkor az errorlevel 1 lesz
if %errorlevel% == 0 goto fut
if %errorlevel% == 1 goto nemfut
goto start
:fut
ECHO FUT
echo.
PING -n 3 127.0.0.1>nul
goto start
:nemfut
echo NEM FUT
echo.
PING -n 3 127.0.0.1>nul
goto startÉn calc.exe vel teszteltem tökéletes

-
sztanozs
veterán
@echo off
REM :eleje
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do
echo !!!!!!!!!
REM SET van
REM %van%=%%GREM IF {%van%} EXIST
REM (goto eleje)
REM ELSE (goto vege)
REM :vege
REM echo %van%
pause
Már mindennel próbálkoztam, de a for ciklussal van a baj. Az a vicces, hogy azt egy működő batch fájlból másoltam ki.

A tasklist-es parancsot beírva kézileg is működik, nem értem... :S :S@echo off
:teszt_eleje
for /F "tokens=1,*" %%G in ('tasklist /nh /fi "imagename eq iexplore.exe"') do (
set van=1
)
if defined van (
echo "fut az explorer..."
REM SLEEP 10:
PING -n 11 127.0.0.1>nul
goto teszt_eleje
) else (
echo "NEM fut az explorer"
REM SLEEP 10:
PING -n 11 127.0.0.1>nul
goto teszt_eleje
)Nincs fent nálam a foobar - IE-vel tesztetem - de tetszőlegesen módosítható...
-
Paulo81
aktív tag
@echo off
REM :eleje
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do
echo !!!!!!!!!
REM SET van
REM %van%=%%GREM IF {%van%} EXIST
REM (goto eleje)
REM ELSE (goto vege)
REM :vege
REM echo %van%
pause
Már mindennel próbálkoztam, de a for ciklussal van a baj. Az a vicces, hogy azt egy működő batch fájlból másoltam ki.

A tasklist-es parancsot beírva kézileg is működik, nem értem... :S :S -
Paulo81
aktív tag
Sziasztok!
Szeretnék egy olyan batch file-t ami megnézi, hogy fut-e a foobar és akkor csináln valamit, de ha nem fut, akkor a vége cimkére ugrik és befejeződik.
IF
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"')=truegoto csinald
ELSE goto vege
pause
:vegeEzt tudtam összehozni, de nem működik, szintaktikai hiba. Mit rontottam el?

Ezt is megpróbáltam, de nem működik:
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"') do
set van=letezik
if %van% exist
goto eleje
ELSE goto vege
-
Paulo81
aktív tag
Sziasztok!
Szeretnék egy olyan batch file-t ami megnézi, hogy fut-e a foobar és akkor csináln valamit, de ha nem fut, akkor a vége cimkére ugrik és befejeződik.
IF
for /f "tokens=2" %%G in ('tasklist /nh /fi "imagename eq foobar2000.exe"')=truegoto csinald
ELSE goto vege
pause
:vegeEzt tudtam összehozni, de nem működik, szintaktikai hiba. Mit rontottam el?

-
sztanozs
veterán
Ezzel mi a gond?!
@echo off
mkdir c:\ment\1\
move "%USERPROFILE%\Desktop" c:\ment\1\
if not exist(
xcopy "%USERPROFILE%\Asztal" c:\ment\1\ )
else (
goto exits
:exits
EXITif not exist - nem adtad meg, mi nem létezik
@echo off
mkdir c:\ment\1\
if not exist "%USERPROFILE%\Desktop\" (
xcopy "%USERPROFILE%\Asztal" c:\ment\1\
)
else (
move "%USERPROFILE%\Desktop" c:\ment\1\
) -
stryker.hu
csendes tag
Sziasztok!
Egy kis segítséget kérnék, bat file vagy Wscript filet kellene létrehoznom ami az alábbiakat csinálja:
%userprofile% könyvtárból a documents, desktop, favorite könyvtárakat kimásolja vagy mozgatja a c:\ment\-be .
De!
Egy rakat gépnél a documentum, asztal, kedvencek szerepelnek, hogyan tudok feltételes moddba berakni, hogy ha a "%userprofile%\my documents" könyvtár hibaüzenetet ad ki akkor próbálja meg a "%userprofile%\dokumentum" - könyvtárat.Válaszokat köszönöm!
Ezzel mi a gond?!
@echo off
mkdir c:\ment\1\
move "%USERPROFILE%\Desktop" c:\ment\1\
if not exist(
xcopy "%USERPROFILE%\Asztal" c:\ment\1\ )
else (
goto exits
:exits
EXIT -
stryker.hu
csendes tag
Sziasztok!
Egy kis segítséget kérnék, bat file vagy Wscript filet kellene létrehoznom ami az alábbiakat csinálja:
%userprofile% könyvtárból a documents, desktop, favorite könyvtárakat kimásolja vagy mozgatja a c:\ment\-be .
De!
Egy rakat gépnél a documentum, asztal, kedvencek szerepelnek, hogyan tudok feltételes moddba berakni, hogy ha a "%userprofile%\my documents" könyvtár hibaüzenetet ad ki akkor próbálja meg a "%userprofile%\dokumentum" - könyvtárat.Válaszokat köszönöm!
-
Baryka007
addikt
Restart0-ra megy rá minden óra 0-kor. Az actmin és a filemin értékét a 2. és a harmadik bekezdésben számítom.
set actmin=%acttime:~3,2%
IF "%actmin:~0,1%"=="0" SET /a actmin=%actmin:~1,1%
FOR %%f IN (%actfolder%) DO SET filedatetime=%%~tf
...
set filemin=%filedatetime:~15,2%
IF "%filemin:~0,1%"=="0" SET filemin=%filemin:~1,1%ezt próbáld meg
if actmin GTR 2 goto after2mins
goto ok
nincs az actmin %actmin% így leírva ez is lehet hiba. -
BigBlackDog
veterán
Én erre a részre tippelnék hogyha valami hibás:
set /a firstmin=%actmin%-2
if %filemin% LSS %firstmin% goto restart1
goto okde érdekelne hogy a filemin -t és az actmin-t mivel kapod meg pontosan ? Az a programrész érdekelne mert szerintem ott van valami gebasz azt nézd meg hogyha a Restart1 re megy rá akkor biztos hogy valami avval van.
Valamint itt:
if actmin GTR 2 goto after2mins
goto oknincs az actmin %actmin% így leírva ez is lehet hiba.
Szerk.: Mivel actmin nem nagyobb 2 nél...
Restart0-ra megy rá minden óra 0-kor. Az actmin és a filemin értékét a 2. és a harmadik bekezdésben számítom.
set actmin=%acttime:~3,2%
IF "%actmin:~0,1%"=="0" SET /a actmin=%actmin:~1,1%
FOR %%f IN (%actfolder%) DO SET filedatetime=%%~tf
...
set filemin=%filedatetime:~15,2%
IF "%filemin:~0,1%"=="0" SET filemin=%filemin:~1,1% -
Baryka007
addikt
Adott egy program, aminek folyamatosan futnia kell, percenként írja az egyik mappa tartalmát. Ha nem működik megfelelően, akkor rövid időn -1-3 perc- belül újra kell indítani. A "nem működést" legegyszerűbb módon úgy tudom észlelni, hogy a mappa módosítási dátuma legalább 2 perccel korábbi .Ennek észlelését és a program újraindítást egy batch scripttel szeretném megoldani.
Az újraindítás rendben működik, azonban valamiért néhány óránként, egész óra nulla perckor is szeretné újraindítani a programot. Elvileg az if elágazás miatt ez nem történhetne meg, mivel a %actmin% változó értéke nulla. Mi lehet a hiba a scriptben? Előre is köszönöm a válaszokat!
A kód így néz ki:set mypath=c:\MyFolder\
set actfolder=%mypath%%1:loop
set acttime=%time%
set acthour=%acttime:~0,2%
IF "%acthour:~0,1%"=="0" SET /a acthour=%acthour:~1,1%
set actmin=%acttime:~3,2%
IF "%actmin:~0,1%"=="0" SET /a actmin=%actmin:~1,1%FOR %%f IN (%actfolder%) DO SET filedatetime=%%~tf
set /a filehour=%filedatetime:~12,2%
IF "%filehour:~0,1%" == "0" SET filehour=%filehour:~1,1%
set filemin=%filedatetime:~15,2%
IF "%filemin:~0,1%"=="0" SET filemin=%filemin:~1,1%if actmin GTR 2 goto after2mins
goto ok:after2mins
if %acthour% NEQ %filehour% goto restart0set /a firstmin=%actmin%-2
if %filemin% LSS %firstmin% goto restart1
goto ok:restart0
color C
echo Restart0 @ %date% %time%
echo Restart0 @ %date% %time%, Act: %acthour%:%actmin%, File: %filehour%:%filemin%, Acttime: %acttime%, Filedatetime: %filedatetime% >> MyLog.log
goto sleep:restart1
color C
echo Restart1 @ %date% %time%
echo Restart1 @ %date% %time%, Act: %acthour%:%actmin%, File: %filehour%:%filemin%, Firstmin: %firstmin% >> MyLog.log
goto sleep: ok
cls
color A
echo Acttime: %acthour%:%actmin%
echo Folder modified time: %filehour%:%filemin%
echo OK
if exist %mypath%MyLog.log (
echo LOG EXISTS!!!
color e
)
goto sleep:restart
REM Ez mukodik
goto loop:sleep
sleep 60
goto loopÉn erre a részre tippelnék hogyha valami hibás:
set /a firstmin=%actmin%-2
if %filemin% LSS %firstmin% goto restart1
goto okde érdekelne hogy a filemin -t és az actmin-t mivel kapod meg pontosan ? Az a programrész érdekelne mert szerintem ott van valami gebasz azt nézd meg hogyha a Restart1 re megy rá akkor biztos hogy valami avval van.
Valamint itt:
if actmin GTR 2 goto after2mins
goto oknincs az actmin %actmin% így leírva ez is lehet hiba.
Szerk.: Mivel actmin nem nagyobb 2 nél...
-
BigBlackDog
veterán
Adott egy program, aminek folyamatosan futnia kell, percenként írja az egyik mappa tartalmát. Ha nem működik megfelelően, akkor rövid időn -1-3 perc- belül újra kell indítani. A "nem működést" legegyszerűbb módon úgy tudom észlelni, hogy a mappa módosítási dátuma legalább 2 perccel korábbi .Ennek észlelését és a program újraindítást egy batch scripttel szeretném megoldani.
Az újraindítás rendben működik, azonban valamiért néhány óránként, egész óra nulla perckor is szeretné újraindítani a programot. Elvileg az if elágazás miatt ez nem történhetne meg, mivel a %actmin% változó értéke nulla. Mi lehet a hiba a scriptben? Előre is köszönöm a válaszokat!
A kód így néz ki:set mypath=c:\MyFolder\
set actfolder=%mypath%%1:loop
set acttime=%time%
set acthour=%acttime:~0,2%
IF "%acthour:~0,1%"=="0" SET /a acthour=%acthour:~1,1%
set actmin=%acttime:~3,2%
IF "%actmin:~0,1%"=="0" SET /a actmin=%actmin:~1,1%FOR %%f IN (%actfolder%) DO SET filedatetime=%%~tf
set /a filehour=%filedatetime:~12,2%
IF "%filehour:~0,1%" == "0" SET filehour=%filehour:~1,1%
set filemin=%filedatetime:~15,2%
IF "%filemin:~0,1%"=="0" SET filemin=%filemin:~1,1%if actmin GTR 2 goto after2mins
goto ok:after2mins
if %acthour% NEQ %filehour% goto restart0set /a firstmin=%actmin%-2
if %filemin% LSS %firstmin% goto restart1
goto ok:restart0
color C
echo Restart0 @ %date% %time%
echo Restart0 @ %date% %time%, Act: %acthour%:%actmin%, File: %filehour%:%filemin%, Acttime: %acttime%, Filedatetime: %filedatetime% >> MyLog.log
goto sleep:restart1
color C
echo Restart1 @ %date% %time%
echo Restart1 @ %date% %time%, Act: %acthour%:%actmin%, File: %filehour%:%filemin%, Firstmin: %firstmin% >> MyLog.log
goto sleep: ok
cls
color A
echo Acttime: %acthour%:%actmin%
echo Folder modified time: %filehour%:%filemin%
echo OK
if exist %mypath%MyLog.log (
echo LOG EXISTS!!!
color e
)
goto sleep:restart
REM Ez mukodik
goto loop:sleep
sleep 60
goto loop -
sztanozs
veterán
-
cigam
titán
Új hozzászólás Aktív témák
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Hivatalos a OnePlus Watch 4
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- Jelentősen ronthat a memóriahiányon egy holnap kezdődő sztrájk
- Mesterséges intelligencia topik
- Bemutatkozott az Oppo kamerás csúcsmodellje
- Kormányok / autós szimulátorok topikja
- Forza sorozat (Horizon/Motorsport)
- Milyen processzort vegyek?
- Kerékpárosok, bringások ide!
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- További aktív témák...
- Fujitsu LIFEBOOK E459 I3-8130U 8 GB 256 GB NVMe 15,6" FullHD laptop
- HP ProBook 450 G8 I3-1115g4 8 GB 256 GB NVMe 15,6" FullHD IPS laptop
- Lenovo Thinkpad T14 G2 Ryzen 3 5450u/16GB/256 GB SSD/14"FHD gyári gar
- HP Elite x2 G4 I5-8265U/8 GB RAM/256 SSD/3k IPS TOUCH 2in1 laptop és tablet
- Új MSI 16 Sword WUXGA 144Hz i7-14650HX 5.2Ghz 16mag 16GB 1TB SSD Nvidia RTX 4070 8GB Win11 Garancia
- BESZÁMÍTÁS! 4TB Samsung T7 külső SSD meghajtó garanciával hibátlan működéssel
- GAMER PC! Ryzen 9800X3D / RTX 5080 / B650 Strix / 32GB 6000MHz / 1000w Gold! BeszámítOK
- BESZÁMÍTÁS! Intel Core i9 14900K 24 mag 32 szál processzor garanciával hibátlan működéssel
- Apple iPhone 11 Pro / 64GB / Kártyafüggetlen / 12Hó garancia / Akku:100%
- LENOVO ThinkPad T14s Gen 2 touchscreen - i7-1185G7, 16GB RAM, SSD, jó akku, számla, 6 hó gar
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest













Ha ez meg lenne oldva, akkor nagyon jó lenne.


