- Musk szerint már jövőre itt vannak a Tesla Optimus humanoid robotok
- Az MSI RadiX AXE6600 tesztje – router, játékosoknak
- QNAP hálózati adattárolók (NAS)
- Synology NAS
- Olcsóbb lett a Tesla Full Self-Driving szoftvere
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Milyen program, ami...?
- Microsoft Excel topic
- Otthoni hálózat és internet megosztás
- A TikTokon marakodik Trump és Biden, betilthatja az USA
Új hozzászólás Aktív témák
-
ArchElf
addikt
@ECHO OFF
REM masol.cmd "\\honnan\folder\*" "\\hova\foler\" "kivetelfajl"
IF [%3]==[] (
ECHO %~fx0 "\\honnan\folder\*" "\\hova\foler\" "kivetelfajl"
GOTO:eof
)
SET SRC=%1
SET DST=%2
SET XCL=%3
SET TMPFILE=%TEMP%\xctemp
XCOPY %SRC% %DST% /E /U /Y /L /EXCLUDE:%XCL% >%TMPFILE%
XCOPY %SRC% %DST% /E /Y /EXCLUDE:%XCL%+%TMPFILE%
DEL /Q %TMPFILE%AE
[ Szerkesztve ]
Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]
-
Panthera
őstag
Sziasztok!
Átnevezni szeretnék fájlokat, úgy, hogy azokhoz az aktuális dátumot is hozzáfűzöm.
Ez sikerült is a %Date:/= % használatával.
De meg lehet-e azt oldani, hogy a dátumot pontok nélkül tegye bele? A legegyszerűbb gondolom az lenne, hogy a dátumot 3 változóra felbontom és egymás után beillesztem. Csak ez már meghaladja a képességeimet. Ebben kérem a segítségeteket.Előre is köszönöm!
-
Panthera
őstag
Fájlt is kell törölnöm (másolás után az eredeti helyéről), ez az ellenőrző funkció megfelel-e szerintetek vagy van biztosabb megoldás?
copy c:\*.* c:\másik könyvtár
if exist c:\másik könyvtár\*.* del c:\*.*Próbáltam az else parancsot is belefűzni, hogy pl. vége a programnak, de szintaktikailag nem volt jó valami.
Érdemes lenne egy fájlt létrehozni pl. echo.txt, amelybe mindig hozzáfűné az aktuális visszajelzéseket (ilyenekre gondolok: másolás, átnevezés, törlés sikeres-e vagy sem)?
-
cigam
félisten
válasz Panthera #357 üzenetére
Nem 1xübb a move parancs? (Merthogy az is lemásolja, és ha sikerült, akkor törli az eredeti helyéről.
+Hibakezelés errorlevel-el:Move ide oda
IF (%ERRORLEVEL% == 0) goto OK
else goto HIBA
:OK
echo.%Date% >>c:\naplo.txt
echo.%Time% >>c:\naplo.txt
echo."Sikeres mozgatás" >>c:\naplo.txt
goto:vege
:HIBA
echo.%Date% >>c:\naplo.txt
echo.%Time% >>c:\naplo.txt
echo."Sikertelen mozgatás" >>c:\naplo.txt
goto:vege:vege
Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews
-
Panthera
őstag
Megpróbáltam többféleképp, de egyik sem nyert. Most már kezd az idegbaj kerülgetni.
[link]IF %ERRORLEVEL% EQU 0 goto OK else goto HIBA
IF ERRORLEVEL EQU 0 goto OK else goto HIBA
IF (%ERRORLEVEL% == 0) goto OK else goto HIBA
IF (ERRORLEVEL == 0) goto OK else goto HIBA
IF ERRORLEVEL == 0 goto OK else goto HIBA -
sztanozs
veterán
válasz Panthera #361 üzenetére
Először kell egy
SETLOCAL enabledelayedexpansion
Utána pedig már megy a következő
If !ERRORLEVEL! EQU 0 (
goto OK
) else (
goto HIBA
)JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Panthera
őstag
válasz sztanozs #363 üzenetére
Egyikkel sem lett jó sajnos.
Ha kiíratom az errorlevel értékét, 0-át ad vissza mindig, szerintem onnan indul a probléma.
A hibakezelés a move paracsra irányulna. Az errorlevel mindig az utolsó parancs értékét veszi fel?move c:\*.* c:\dir\
SETLOCAL enabledelayedexpansion
If !ERRORLEVEL! EQU 0 (
goto OK
) else (
goto HIBA
)[ Szerkesztve ]
-
sztanozs
veterán
-
Baryka007
őstag
Üdv, kérdés hogyha nekem van egy ilyen programom
az megvalósítható hogy
msg * <ping> -ba írja ki nekem mindig a legfrissebb ms-t mondjuk ha csak egyszer indul el a program?
if exist asd.bat del asd.bat
echo off
cls
set /a x=0
goto :startb
:starta
start asd.bat
if %x% EQU 10 goto :exit
goto :startb
:startb
set ans=%x%
echo %~f1 >>asd.bat title XXXXXXXXXXX Pingeles!
echo %~f1 >>asd.bat echo off
echo %~f1 >>asd.bat cls
echo %~f1 >>asd.bat echo XXXXXXXXXXXXXX !
echo %~f1 >>asd.bat ping xxxx.xxxxx.xxxxx.xxxx -n 50
set /a x=%x%+1
goto :starta
:exit
exit -
Baryka007
őstag
Újabb kérdéssel fordulok hozzátok ugyanis én már nagyon belebonyolódtam a programomba és fogalmam sincs most már hogy mi a baja teljesen bele zavarodtam egyrészt azért mert pontosan 110 változó van benne ! De le írom nagyba hogy mit kéne megcsinálni szeretném ha segítenétek ebben!
Szóval van 110db szám amik ( például ) autó márkák szerint vannak csoportosítva
Aztán a számokat egyesítem csoportba például szín szerint! ( és vannak olyan autók amikben 2 vagy esetleg 3 szín is van )
aztán megkérdezi a program hogy melyik autót választom és az mellé választ egy olyan színű autót amiben nincs meg az a szín mint amelyiket választottam aztán ezek közül az autók közül megint választok egyet és ezek közül megint kiválogatja azokat amelyik az előző 2 választott autó színeiben nincsenek benne! tehát ha pl van 10 színemFehér
Kék
Sárga
Zöld
Piros
Lila
Rózsaszín
Fekete
Szürke
Neon( A fehér és a fekete tudom hogy nem szín de nem jutott több eszembe )
nah szóval ha ezek közül a színek közül az első autóm színe fehér/sárga ( tehát két szín van benne ) akkor a következő autóban ezek nem lehetnek aztán választok még egy autót mondjuk kéket akkor a maradék autóknak NEM szabad Fehérnek, Sárgának, vagy Kéknek lennie!
Nagyon szépen megköszönném ha valaki tudna ebben segíteni !
[ Szerkesztve ]
-
Baryka007
őstag
válasz Baryka007 #369 üzenetére
De ha valahogy meg tudjátok mondani hogy valami adatbázis félét hogy lehet csinálni amiből a batch ki tud olvasni fileokat akkor már meg tudnám oldani de nem is kell adatbázis vagy mysql vagy ilyesmi ha egy szöveges dokumentumból az adatokat már ki tudnám vele olvastatni az már jó lenne erre létezik valami parancs?
-
sztanozs
veterán
válasz Baryka007 #369 üzenetére
Ezt mind batch-ben szeretnéd megcsinálni?
Szöveges fájlból a FOR /F -el tudsz adatbázisszerűen kiolvasni adatokat.
Ha már nincs fejlesztői környezeted, de szeretnél valami csinálni, akkor inkább már vbs-t csinálj. Sokkal több a lehetőséged és könnyebb dolgod is lesz (pl. tudsz fejlettebb adatszerkezeteket is használni).[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
sztanozs
veterán
válasz sztanozs #372 üzenetére
Bár közben találtam egy jó array-es batch megvalósítást...
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Csontikka
aktív tag
válasz Baryka007 #374 üzenetére
Szia,
használj temp file-okat
alapból egy text fileba vannak az adataid pl vesszővel elválasztva
C:\teszt.txt
Kék;Fiat
Fekete;Fiat
Neon;Ferraristb
majd a program futásánál amikor a "válogatáshoz érsz" akkor valami hasonló csinálj:
pl kék kocsik átlistázása egy másik fileba
FOR /F "tokens=1,2* delims=;" %%A IN (C:\teszt.txt) if %%A==Kék echo %%A;%%B>>TEMP_Kékek
és utána az egészet beteszed egy ciklusba és utána mindig már csak az átszűrt listát szűrögeted tovább
a temp fileok a "tömbjeid" és mindig a követlező temp filet szűröd tovább,
a for-ral pedig kiolvasol a "tömböket"
nem kell sok változó, változóba mindig csak az legyen, amivel épp dolgozol/számolsz/hasonlítasz, stb.
a temp fileok nevét pedig pl egy numerikus változóval növelgeted minden ciklusban
Remélem ad támpontot amit írtam, többre most nem tellett
Üdv,
Csontikka[ Szerkesztve ]
-
Csontikka
aktív tag
válasz Baryka007 #377 üzenetére
nagyon szivesen
sorry egy do kimaradt, meg az ékezetekkel is csak óvatosan főleg file névben ... elég pongyola voltam...
FOR /f "tokens=1,2 delims=;" %%A IN (d:\teszt.txt) do if "%%A"=="Kek" echo %%A;%%B>>D:\Kekek.txt
több parancsot is rakhatsz ám belülre pl:
FOR /f "tokens=1,2 delims=;" %%A IN (d:\teszt.txt) do (if "%%A"=="Kek" echo %%A;%%B>>D:\Kekek.txt
pause)Üdv,
Csontikka[ Szerkesztve ]
-
Baryka007
őstag
válasz Csontikka #378 üzenetére
set /p select=Ide irj:
FOR /f "tokens=1,2 delims=; skip=%select%" %%A IN (Autok.txt) do if "%%B"=="Kek" echo >>Ebbe.txt %%A;"
Ebbe lehet egy olyasmit rakni hogy X sortól Y sorig olvassa csak ki a fileokat? Skippel sikerült elérnem hogy X sortól olvassa de azt még nem tudtam elérni hogy Y ig menjen ez megvalósítható?Csak mert az első Autót színtől függetlenül én választom ki és a többit a gép rakja hozzá de ő már a színek szerint ( tehát nem lehet a többi 2 autó amit még hozzá rak a program például kék ha én pont egy olyan színű autót választottam )
[ Szerkesztve ]
-
Baryka007
őstag
válasz Baryka007 #381 üzenetére
Előre is elnézést kérek minden fórumolvasótól ezért a rengeteg HSZ. ér! Mert ez tényleg rengeteg amit ide írok sajnos mire le esik a tantusz addigra már nem szerkeszthető a HSZ. hajnali 1:53 kor már nem bírja úgy a fejem
szóval arra rájöttem már hogy ha ki tudnék választani 1 sort a sok közül utánna már megoldanám hogy a többi ne olyan legyen evvel: FOR /f "tokens=1,2 delims=; skip=%select%" %%A IN (Autok.txt) do IF NOT "%%B"=="Kek" echo >>Ebbe.txt %%A;" És akkor ez tuti hogy nem olyan színű lesz mint amelyiket válaszotttam csak azt nem tudom beprogramozni hogy csak 1 sort vegyen ki az első ciklusnál :\ mivel az szabadon választható
Még egyszer elnézést kérek a Prohardver.hu olvasóitól a sok HSZ. ér!
[ Szerkesztve ]
-
lakisoft
veterán
Sziasztok,
Szükségem lenne egy olyan batch fájlra ami könyvtárakat hoz létre.
1-től 1500-ig a következő feltételekkel:
1/thumb_1/
1/thumb_2/
1/thumb_3/
1/thumb_4/ stb.Előre is köszönöm.
A válaszadónak jutalom jár. -
sztanozs
veterán
-
Baryka007
őstag
Megoldottam minden problémát köszönet mindenkinek aki segített főleg Csontikka-nak!
-
Csontikka
aktív tag
válasz Baryka007 #388 üzenetére
Szia,
nem tudom mitől szeretnél függővé tenni a sorok olvasását de valami hasonló ötletem lenne:
1, - Ha már a ciklus megkezdése előtt tudod, hogy mettől meddig akarsz olvasni a file-ban
A cikluson belül legyen egy valtozod, ami tartolja hanyadik sornal jarsz. Numerikus, mindig lepteted eggyel, belepes elott nullazod.
a ciklusba lépés előtt megadsz két változót, ami tarolja mettől meddig kell olvasni a file-ban.
A for ciklus do-n belül részét egy if-el kezdd. Nézd meg, hogy a sorváltozód nagyobb vagy egyenlo mint elso sor és kisebb vagy egyenlő mint utolsó sor. (LEQ, GEQ) Ha mind két feltétel teljesül akkor fusson csak le a do-n belüli rész. (Az if után a zárójelen belül ugyanúgy lehet több parancs, mint a do-nál)
2, - Ha azt szeretnéd, hogy elindulsz mondjuk első sortól és addig olvasson amig mondjuk nem talál egy Kék-et, akkor pedig valami hasonló a helyzet
A ciklusba lépés előtt adsz neki egy váltózot, hogy pl. "kellemegolvasni=YES".
A do-n belüli részen pedig azt mondod neki, hogy a sort csak akkor fusson arra a sorra, ha kellemegolvasni==YES (a többi részt szintén bezárójelezed). Ha megtalálod abban a sorban ami azt eredményezi, hogy már nem kell a következő sort olvasni akkor pl:if %%A==kék akkor set kellemegolvasni=no
így is végig fogja olvasni a file-t, de az első kék után már nem fog lefutni az a parancs amit függővé tettél a kellemegolvasni változótól.
mindkét esetben szükséges a környezeti változók késleltetett behelyettesítésének előzetes engedélyezése
SETLOCAL enabledelayedexpansion
sok sikert!
Üdv,
Csontikka[ Szerkesztve ]
-
Baryka007
őstag
válasz Csontikka #389 üzenetére
Szia, Kész lett a program már csak egy kis apróság hiányozna amit nem tudok megoldani :\ Ha pl van egy változóm ami még nem is létezik akkor az minek felel meg? írok rá 1 példát
if %elozo%==0 goto settelesés itt ahol ez a sor van a programba az a változó hogy "elozo" még nem is létezik !!! Szóval nincs olyan akkor azt hogy lehetne megcsinálni hogyha NEM létezik az "elozo" változó akkor lépjen a :setteles ciklusba? Remélem érthetően mondtam :\
[ Szerkesztve ]
-
beastlord
csendes tag
Sziasztok!
Őszintén bevallom nem értek a batch programozáshoz, de most szükségem lenne egy batch fájlra.
Van két szerver, az első gépen futnak a fő folyamatok és a másik a tartalék. A tartalék gépre kellene egy olyan batch fájl, hogy pingelje az első gépet és ha a ping-re nem válaszol a fő gép akkor a gép kapcsolja be a második háló kártyáját egy bizonyos ip címmel.
Ez megoldható batch-ban?
A választ előre is köszönöm.
-
sztanozs
veterán
válasz beastlord #393 üzenetére
Igen, pingre szerintem volt itt már példa, network configra pedig nézd meg ezt: netsh
Pingre:
SET DestIP=192.168.1.101
SET LANName="Local Area Connection"
SET ConfigIP=192.168.1.199
SET ConfigMask=255.255.255.0
SET ConfigGW=192.168.1.1
SET ConfigDNS=192.168.1.1
:ping
ping %DIP% -t 1 >null 2&
IF ERRORLEVEL 1 goto :config
PAUSE 1
GOTO :ping
:config
netsh interface ip set address name=%LANName% static %ConfigIP% %ConfigMask% %ConfigGW% 1
netsh interface ip set dns "Local Area Connection" static %ConfigDNS%[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Speeedfire
nagyúr
Többé kevésbé on topic kérdésem lenne.
Adott egy batch file. Hogy lehetne megoldani, hogy ez a gép indulásakor a háttérben lefusson? Nem akarok parancssoros felületet. Csak simán fusson le a háttérben.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
sztanozs
veterán
válasz Speeedfire #396 üzenetére
Indítsd WScritből (akármi.vbs). Csak ennyi kell bele:
CreateObject("Wscript.Shell").Run "becsfájl.bat",0,TrueJOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Speeedfire
nagyúr
válasz Speeedfire #398 üzenetére
Hát, ez így nem a legjobb. Ezt megakarja nyitni az a fránya visual studio.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
cigam
félisten
válasz Speeedfire #396 üzenetére
Készíts a batch fájlról egy parancsikont, azon már be tudod állítani, hogy "kisméretű" ablakban fusson.
Ha ragaszkodnál VBScript-hez, , akkor a cscript.exe paramétereként add meg.Freeware, és akciós programok egy helyen https://www.facebook.com/freewarenews