Új hozzászólás Aktív témák
-
-
bilon73
aktív tag
helló,
új problémám van
egy adott könyvtárból, az 1 mb-nál nagyobb fájlokat kéne elmásolni, vagy betömöríteni.
tehát, adott c:\valami könyvtár. abban található kb 125 db fájl.
Ebből a 125 db fájlból ki kell válogatni azokat amik 1 mb-nál nagyobbak, és vagy elmásolni egy C:\ valami2 könyvtárba, vagy egyből betömöríteni egy valami.zip fájlba.köszi
üdv -
Csontikka
aktív tag
Szia,
szerintem ez a kulcsa a kérdésednek:
Ez a pár soros script pl. bejárja a "D:\YOURDIR" könyvtárat és az összes ott található .txt kiterjesztésű állomány nevének kiírja 10 karakterét a 8. karaktertől kezdve.
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=*" %%f in ('dir /b /s "D:\YOURDIR\*.txt"') do (SET NAME=%%f
echo !NAME:~8,10!)Üdv,
Csontikka -
bilon73
aktív tag
helló,
segítség kellene.
sajnos csak batch jöhet szóba.szóval, adott egy mappa, ahova időközönként kerülnek fájlok. hasonló névkonvencióval, csak a dátum változik:
pl: xyzs_20180712_xxxxxx_yy_1234_1_xxx_x_y.txt
ezt kéne elmásolni egy olyan mappába, aminek a fájlban lévő dátum a neve: 20180712hogy tudom kiszedni a fájlnévből a dátumot, hogy utána azt használja?
köszi
üdv
p -
sztanozs
veterán
-
Sonja
nagyúr
Linux CLI alatt szeretnék egy mappában lévő .jpg képeket átméretezni 500x500-ra. Ezt kiviteleztem ezzel a parancssorral:
find . -maxdepth 1 -iname "*.jpg" | xargs -l -i convert -resize 500x500 {} {}_resized
Viszont az ettől kisebb méretű képeket is átkonvertálja. Van-e valami mód, hogy az ettől kisebbet hagyja változatlanul?
Jó batch file-ban is, nem fontos egy parancssorban megoldani (de az is lehet).
-
-
Csontikka
aktív tag
WMI lekérdezésből indulj ki, ne a date/time parancsokból
@echo off
rem Get the time from WMI - at least that's a format we can work with
set X=
for /f "skip=1 delims=" %%x in ('wmic os get localdatetime') do if not defined X set X=%%x
echo.%X%
rem dissect into parts
set DATE.YEAR=%X:~0,4%
set DATE.MONTH=%X:~4,2%
set DATE.DAY=%X:~6,2%
set DATE.HOUR=%X:~8,2%
set DATE.MINUTE=%X:~10,2%
set DATE.SECOND=%X:~12,2%
set DATE.FRACTIONS=%X:~15,6%
set DATE.OFFSET=%X:~21,4%
echo %DATE.YEAR%-%DATE.MONTH%-%DATE.DAY% %DATE.HOUR%:%DATE.MINUTE%:%DATE.SECOND%.%DATE.FRACTIONS% -
Létezik valami univerzális megoldás a dátum/idő kezelésre? Ahány Windows annyiféle formátum, és a nyelvi verziók sem egyszerűsítik a megoldást.
rem W10.hun
set ev=%date:~0,4%
set honap=%date:~6,2%
set nap=%date:~10,2%
set ora=%time:~0,2%
if "%ora:~0,1%"==" " set ora=0%ora:~1,1%
set perc=%time:~3,2%
set nev=%ev%-%honap%-%nap%_%ora%%perc%.jpgEzt hogyan tudnám univerzálissá tenni?
-
#78693120
törölt tag
Nekem az ilyen funkcionalitásról inkább már Python, esetleg Powershell, vagy Bash (már van Windowsra is) jut eszembe. A batch a DOS öröksége és a többihez képest jóval kevesebbet tud.
Illetve ajánlom figyelmedbe a Seleniumot, ami egy weboldaltesztelő megoldás és pont olyanokra találták ki, amiket te akarsz.
-
gojko.m
senior tag
Oké, oké... Látom nincs egyszerű dolgotok.
De ha már így összejöttünk, lehet egy kérdéssel több?
Szóval... ismersz esetleg valami parancssoros megoldást weboldalak forrásában történő keresésre? Valami olyat, amit aztán be lehetne építeni egy .bat fájlba.Kicsit bővebben: megadok egy linket és megadok egy karaktersort. A program meg visszaadná, hogy az oldal forrásában hanyadik karaktertől kezdődik keresett rész. A következő lépés meg az lenne, hogy megvizsgálnám a keresett rész környékén lévő karaktereket. Azaz itt a megadott értékek alapján megmutatná, hogy milyen karakterek találhatók az adott helyen.
Megoldható ez valahogy?
-
gojko.m
senior tag
Nem nagyon pörög ez a topik...
Míg a válaszra vártam, keresgéltem és intenzíven próbálkoztam a megoldással. Aminek meg is lett az eredménye. De közben kiderült számomra, hogy mekkora sz.pás a változók használata a batch fájlokban. Na, mindegy...
Azért megosztanám a végeredményt, ha esetleg egy erre tévedt topik látogatót netán érdekelne:
@echo off
rem set /p link_be="Addj meg egy linket: "
set link_be=https://www.google.hu/search?q=valami
set "ker=?q"
call set veg=%%link_be:*%ker%=%%%
call set veg=%veg:~1%
call set eleje=%%link_be:%veg%=%%%
call set link_ki=%eleje%masikszoveg
"C:\Program Files\Mozilla Firefox\firefox.exe" %link_ki%
pause
exit -
gojko.m
senior tag
Sziasztok!
Hogyan lehetne batch fájl segítségével egy URL linket - bizonyos feltételek alapján - módosítani?
A folyamat ez lenne:
- beírnám (vagy beilleszteném) a linket
- a parancsfájl a linkben megkeresne egy szöveget (karaktersort).
- a szöveg utáni részt levágná (a végéig)
- a levágott rész helyére egy megadott szöveget illesztene be
- a módosított link további feldolgozása (pl. megnyitása böngészőben)Pl.: van egy ilyen link
"https://www.google.hu/search?q=valami"
"q=" karaktersor megkeres, utána lévő szöveg levág, "masikszoveg" hozzáilleszt, végeredmény:
"https://www.google.hu/search?q=masikszoveg"A .bat fájlból ennyi már megvan (
):
set /p link_be="Addj meg egy linket: "
???
"C:\Program Files\Mozilla Firefox\firefox.exe" %link_ki%...de mi kerüljön a "???" helyére?
-
PalmtopNL
csendes újonc
Tudom hogy mindenki látja
Csak a kérdést te tetted fel,ezért neked illik válaszolni,na meg ha kértél a válasz érkezésröl eMail értesítést akkor azt te kapod meg.A feladat egyszerü aki tud batch file-t szerkeszteni és ismeri a parancsokat.
Sajnos én ennyit sem tudok.A parancs sor kb..így néz ki:
@echo off & setlocal enableextensions enableDelayedExpansion
set disk=
set gdir=
set safe_folder=
set freespace=
set neededspace=REM Hole das Install-Verzeichnis von Gothic:
REM ****************************************
for /f "tokens=1* delims=:" %%i IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\JoWooD Productions Software AG\Gothic III" /v INSTALL_DIR^| find"INSTALL_DIR"') do (
for /f "tokens=3" %%A IN ("%%i") DO @set disk=%%A:
set part2=%%j
)
set gdir=%disk%%part2%\Data
REM *************
REM Ueberpruefe ob genug Festplattenplatz fuer alles vorhanden ist, sonst Abbruch
REM ****************************************
for /f "tokens=3" %%i IN ('dir /-c %disk%^| find "ytes fre"') do @set freespace=%%i
set /A freespace=%freespace:~0,-6%+0
set /A neededspace=5500
if %freespace% LSS %neededspace% (
gotoES
)
REM *************REM Ueberpruefe ob alle benötigten Dateien vorhanden sind, sonst Abbruch
REM ****************************************
if NOT exist G3Pak.exe goto :Miss
if NOT exist G3PakDir.exe goto :Miss
if NOT exist G3Pak.exe.manifest goto :Miss
REM *************REM Lege Sicherungsverzeichnis fest und pruefe, dass es nicht schon vorhanden ist. Wenn nicht vorhanden lege es an, sonst Abbruch
REM ****************************************
set safe_folder=%disk%\G3_Pak_S
if exist %safe_folder% gotoolder
mkdir %safe_folder%
REM *************REM Die Dateien Sichern
REM ****************************************
echo MOVE
move "%gdir%\*.p*" "%safe_folder%"
echo MOVE_END
REM *************REM set safe_folder=I:\Spiele\Gothic\Kopie von G3_Pak_S
REM Für alle die wissen was sie machen, kann hier von Hand der Safe_Folder umgesetzt werden, um von einem anderen Speicherort zu entpacken...REM Durchlaufe die gesicherten .pak-Dateien
REM ****************************************
echo .
FOR /f %%k IN ('dir /b %safe_folder%\*.pak') DO (REM Entpacke die aktuelle .pak-Datei (s.O.), wenn es sie gibt
REM ****************************************
echo "%safe_folder%\%%~nxk"
if exist "%safe_folder%\%%~nxk" (REM Falls es das Speicherverzeichnis schon gibt, eben umbenennen
REM Sollte nur in Ausnahmefällen auftreten, z.B. wenn man das _compiledImage angelegt hat, um einen Bug zu beheben.
REM ****************************************
if exist "%gdir%\%%~nk" (
echo "ren %gdir%\%%~nk %%~nk_org"
ren "%gdir%\%%~nk" "%%~nk_org"
)
REM *************echo "start /wait G3Pak.exe --extract-all %safe_folder%\%%~nxk %gdir%\%%~nk\"
start /wait G3Pak.exe --extract-all "%safe_folder%\%%~nxk" "%gdir%\%%~nk\"
echo.
)
REM *************REM Entpacke die zur aktuellen .pak-Datei gehörenden .p00-Datei, wenn es sie gibt (s.O.)
REM ****************************************
if exist "%safe_folder%\%%~nk.p00" (
echo "start /wait G3Pak.exe --extract-all %safe_folder%\%%~nk.p00 %gdir%\%%~nk\"
start /wait G3Pak.exe --extract-all "%safe_folder%\%%~nk.p00" "%gdir%\%%~nk\"
echo.
)
REM *************REM Packe das aktuell entpackte Verzeichnis (.pak&.p00-Dateien) wieder OHNE Kompression
REM ****************************************
echo "start /wait G3PakDir --no-compression %gdir%\%%~nk"
start /wait G3PakDir --no-compression "%gdir%\%%~nk"
REM *************REM Loesche das Verzeichnis, da es nicht merh benötigt wird
REM ****************************************
echo rmdir /S /Q "%gdir%\%%~nk"
rmdir /S /Q "%gdir%\%%~nk"REM Falls es das Speicherverzeichnis original gab, wieder zurückbenennen (s.O.)
REM ****************************************
if exist "%gdir%\%%~nk_org" (
REM Mit dem Ping wird künstlich 30 Sekunden gewartet, damit das Verzeichnis auch sicher gelöscht ist, wenn das Rename stattfindet. DieAdresse 1.1.1.1 ist nicht erreichbar. Nur so funktioniert die Wartefunktion, deshalb nur in eine nicht erreichbare Adresse ändern, wenn es
jemand wünscht! Wenn man nicht warten will einfach die Zeile 'PING 1.1.1.1 -n 30 -w 1000 >NUL' mittels REM auskommentieren. Da das hier aber
eh nur sehr selten auftreten sollte, störts auch nicht gross
REM ****************************************
echo "Warte 30 Sec. DIESES FENSTER NICHT SCHLIESSEN!!!"
PING 1.1.1.1 -n 30 -w 1000 >NUL
REM *************
echo "ren %gdir%\%%~nk_org %%~nk"
ren "%gdir%\%%~nk_org" "%%~nk"
)
REM *************
echo ################################################
echo.
)
REM *************
REM *************
echo.
echo " -- Geschafft!!! -- "
echo "--- Hoffentlich hilft's---"
echo.goto :end
ES
echo -------ABBRUCH------ Es werden mindestens %neededspace% MB Festplattenplatz auf Laufwerk %disk% benoetigt, es stehen aber nur%freespace% MB zur Verfuegung
goto :endolder
echo "Schonmal gespeichert --- ABBRUCH"
echo "Das Sicherungsverzeichnis ist %safe_folder%"
goto :end:Miss
echo "Es fehlen die G3Pak-Dateien von NicoDE. Diese Batch muss sich mit den entpackten Dateien in einem Verzeichnis befinden. Die Dateienkann man unter http://www.bendlins.de/nico/gothic3/ herunterladen. Einen passenden Entpacker gibt es kostenlos hier: http://www.7-zip.org/"
goto :end:end
PAUSE
Csak egy FlashROM.img-ét kell tudnia kicsomagolni.
Valamikor basic-ban "tudtam programozni" a legnagyobb munkám egy mennyiség/ár kalkulátor volt
üdv.
-
PalmtopNL
csendes újonc
korábban elnéztem a címzettet !
a válasz mepet-nek van szánvabocsika! többet (remélem) nem fordul elö
sziasztok
7. Die entpacken.bat editieren. Den Filenahmen des Img eintragen.
szó szerinti fordutás kb.:
Az entpacken.dat(nevüt) (át)szerkeszteni és a .img fájl nevét betenni,behelyezni (beírni).
Magyarra értelmezve: egy erre a célra készült (entpacken).bat fájlt (ha nincs akkor készitünk) beírjuk a kicsomagolásra szánt fájl nevét a entpacken.bat nevü file-be (valahova,ahova kell,mint pl.a linkelt példán,
ott is bent van a file név a megfelelö helyen)
és a 8-as pont szerinte a (cmd ablakban) elinditjuk.
Azért is küldtem egy linket: https://forum.worldofplayers.de/forum/threads/144315-Datenpakete-entpacken-f%C3%BCr-Ladevorteile
amiben valami hasonló batch parancssor van csak nem .img file-hoz
hanem valami játéknak a fájlját csomagolja ki
üdv, -
PalmtopNL
csendes újonc
válasz
Csontikka #870 üzenetére
sziasztok
7. Die entpacken.bat editieren. Den Filenahmen des Img eintragen.
szó szerinti fordutás kb.:
Az entpacken.dat(nevüt) szerkeszteni és a .img fájl nevét betenni,behelyezni (beírni).
Magyarra értelmezve: egy erre a célra készült (entpacken(.bat fájlt (ha nincs akkor készitünk) beírjuk a kicsomagolásra szánt fájl nevét a entpacken.bat nevü file-be (valahól,ahova kell,mint a linkelt példán,
ott is bent van a file név a megfelelö helyen)
és a 8-as pont szerintel a (cmd ablakban) elinditjuk.Azért is küldtem egy linket:https://forum.worldofplayers.de/forum/threads/144315-Datenpakete-entpacken-f%C3%BCr-Ladevorteile
amiben valami hasonló batch parancssor van csak nem .img file-hoz
hanem valami játéknak a fájlját csomagolja kiüdv,
-
htc07
addikt
Sziasztok,
Az alábbi egyszerű folyamat fogott ki rajtam:
Egy számot kellene bekérni, és azzal a számmal a link végén megnyitnia egy weboldalt:
@echo off
set /p idd="Szam: "
"C:\Program Files\Internet Explorer\iexplore.exe" https://website.com/?site=abc&id= %idd%De nem megy, a link amit megnyit az a https://website.com/?site=abc - gondolom a & jellel van baja, de \&-ként sem akar menni.
Tippek?
tuti valami alap dolgot nézek be.
-
PalmtopNL
csendes újonc
sziasztok
Volna egy kis problémém.Kellene egy entpacken.bat.Ez egy WinCE ROM.img kicsomagoló batch fájl.
A lényeg ez lenne: https://www.digital-eliteboard.com/threads/rom-sicherung.88200/
Mogelhieb Administrator-nálA fontos a 7-es és 8-as pont
Vagyis egy entpacken.bat datei-t kelll editálni és ebbe berakni az .img nevét.Amit tudok: Batch File-t létrehozni (ha van @echo off ......és a többi karakter)
vagyis egy kész szöveget befüzni az editorba és elmenteni xyentp.bat (vagy .cmd) - ként.( valami ilyesmi : https://forum.worldofplayers.de/forum/threads/144315-Datenpakete-entpacken-f%C3%BCr-Ladevorteile
[edit by Estella]
Estella hat außerdem eine Batch zur Verfügung gestellt, die in aktueller Version (06.07.07) hier angegeben ist: alatt )Csakhogy mit írjak abba a szöveges fájlba az
@echo off alá, na azt nem tudom
föleg azt nem hogy végre is hajtsa azt a parancsot hogy egy ROM.img fájlt kicsomagoljon az OP
rendszer fájlraira ami Mogelhieb Administrator-nak sikerült.Ebben kérnék segítséget amit elöre is köszönök
-
Pöttön
őstag
válasz
csaszizoltan #865 üzenetére
Köszönöm szépen!
-
csaszizoltan
csendes tag
Szia!
Hozz létre egy "F3.vbs" visual basic script filet az alábbi tartalommal:F3.vbs
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "{F3}"majd illeszd be az F3.vbs sort a batch fileodba így:
(a clip parancs után az általad megadottól eltérően a másik irányba kell állni a csibecsőrnek
és a connect txt csak az ip címet tartalmazhatja és nem lehet utána - mármint az ip cím után - benne enter )CLIP < CONNECT.TXT
start "Privat Client" "D:\Games\xyz\xyz Privat Client trainer.exe"
start "xyzmp" "D:\Games\xyz\xyzmp.exe"
F3.vbsHa a konzolt is lehet billentyűparanccsal előhozni, azt is lehet vbs file-lal irányítani, majd ugyanígy a ctrl-v-t is, részletek itt.
elképzelhető hogy az F3.vbs legelejére be kell illeszteni egy (több) másodperc várakozást 1000 millisecundummal képezve, hogy a játék betöltődése megtörténjen
WScript.Sleep 1000
-
Pöttön
őstag
Sziasztok!
Előre is leszeretném szegezni, hogy nem konyítok a programozáshoz.
Egy játékot, és a hozzá tartozó trainert szeretnék egy időben, 1 ikonnal futtatni, a lehetőlegjobban leegyszerűsítve.
A trainer segítségével tudok csatlakozni más játékosokhoz. A Trainer-t pedig az F3 billentyűvel aktiválom.
Majd a játék konzoljába kell beírnom a szerver ip címét.
Ezt eddig úgy sikerült leegyszerűsítenem, hogy létre hoztam egy .bat file-t, amiben a következők vannak:CLIP > CONNECT.TXT
start "Privat Client" "D:\Games\xyz\xyz Privat Client trainer.exe"
start "xyzmp" "D:\Games\xyz\xyzmp.exe"A coonect.txt-ben a szerver ip címe van, amit egyből másolással vágólapra tesz, és így a játék betöltése után csak F3-mat kell nyomnom, majd a konzolt előhoznom, és abba beillesztenem az ip-t ctrl v-vel, majd enter.
A kérdésem az lenne, hogy az megoldható valahogy, hogy a két exe betöltődése után automatikusan megtörténjen az f3 gomb lenyomása?
Szóval bele lehet azt valahogy írni a scriptbe, hogy automatán aktiválja a trainert?
A választ, segítséget előre is köszi!
-
válasz
csaszizoltan #861 üzenetére
W10-nél kicsit odébb csúsztak.
Ez tuti működik(magyar W10 alatt), most próbáltam ki.
set forras=C:\users\szeke\Dokumentumok\batch
set cel=C:\users\szeke\Dokumentumok\batch\teszt
set fajl=teszt.zip
set datum=%date:~0,4%-%date:~6,2%-%date:~10,2%__%time:~0,2%%time:~3,2%%time:~6,2%
if exist %cel%\%fajl% (ren %cel%\%fajl% "%datum%-%fajl%")
copy %forras%\%fajl% %cel%\%fajl% /-y -
csaszizoltan
csendes tag
válasz
Mr_no_Name #860 üzenetére
Ha magyar nyelvű az oprendszer, akkor a set today sor helyesen
set today=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
Ha tized és század másodpercet is akarsz, akkor
set today=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%%time:~9,2%
Ha angol nyelvű az oprendszer akkor házifeladat az alábbi szabály figyelembevételével
%date:~a_kimetszendő_string_kezdőpozíciója_nullával_kezdve_a_számlálást,a_kimetszendő_string_hossza%
-
Mr_no_Name
tag
Köszönöm szépen! Az a baj, hogy nem lenne rossz ,de nem működik. Se a filet nem nevezi át, és még meg is kérdezi, hogy fileval vagy directoryval akarok-e foglalkozni. Nekem egy teljesen automatazitált dolog kéne, ami szó nélkül átrángatja a forrásból a célkönyvtárba a másik filet, de mielőtt ezt megtenné, a célkönyvátrban lévő már létező (ugyan olyan nevű filet átnevezné a mai dátumra, órára percre stb). és így akár hányszor rányomnék, csinálna egy backupot a fileból.
-
Hopsz a target/source végére nem kel \ jel, különben kétszer teszi oda, mert a ren és xcopy paraméterébe is beleírtam ahogy az átnevezés végét is. namég1x:
set source="C:\innen"
set target="C:\innen\ide"
set file="ezt.7z"
set today=%date:~10,4%%date:~4,2%%date:~7,2%
if exist %target%\%file% (ren %target%\%file% %target%\%today%-%file%)
xcopy /l /d %source%\%file% %target%\%file%Bár így a régi fájlnév kapja meg az új mentés dátumát.
-
válasz
Mr_no_Name #857 üzenetére
Nem bonyolítod ezt túl? Miután a másolás kimenetében van "overwrite", mégegyszer lecsekkolod, hogy létezik-e? Miért másolod, mikor átnevezésről volt szó?
set source="C:\innen\"
set target="C:\innen\ide\"
set file="ezt.7z"
set today=%date:~10,4%%date:~4,2%%date:~7,2%
if exist %target%\%file% (ren %target%\%file% %target%\%today%-%target%)
xcopy /l /d %source%\%file% %target%\%file%Vagy valami ilyesmi. (OS X alatt nem tudom tesztelni)
-
Mr_no_Name
tag
Sziasztok! Segítségetekre lenne szükségem, kezdek kissé megbolondulni
Szeretnék csinálni egy .bat filet, ami egy adott könyvtárból átmásol egy filet egy másik könyvtárba, de mielőtt ezt megtenné, a célkönyvtárban szereplő ugyan olyan nevű filet elnevezze mondjuk a mai dátumra, és csak utána másolja be a filet, így kikerülve azt, hogy felülírkálják egymást. Az eredmény az lesz, hogy egymás mellé szépen más-más nevekkel pakolgatja le azt az 1 filet amit többször szeretnék backupolni.
Találtam egy kódot a neten ami valahogy így néz ki:
@echo off
set source="C:\innen\ezt.7z"
set target="C:\innen\ide\ezt.7z"
set today=%date:~10,4%%date:~4,2%%date:~7,2%
for /f "tokens=* delims=" %%i in ('echo all ^| xcopy /l /d %source% %target% ^| find /v /i "overwrite"') do (
if exist %target%\%%~nxi copy %target%\%%~nxi %target%\%%~ni-%today%%%~xi
)
echo all | xcopy /d %source% %target% > nula probléma a következő: a másolást megcsinálja, de csak egyszer, és nem nem nevezi át a célkönyvátrban szereplő filet.
Valaki tudna segíteni ebben?
-
Csontikka
aktív tag
válasz
Geripapa #855 üzenetére
Szia,
ez batchben lassú lesz, nincs azon a gépen esetleg PowerShell?
Ha igen, akkor kb 1 sor lenne és sokkal gyorsabb:
Get-Content d:\*.xdf | Select-String -pattern "100" -notmatch | Out-File d:\newfile.txt
(pl ez. az összes xdf kiterjeszésű filet végig járja soronként és amire nem illeszkedik a '100' minta (tehát nem pont '100'-at tartalmazza a sor), azt beleírja a newfile.txt-be)
Üdv,
Csontikka -
Geripapa
aktív tag
válasz
Geripapa #854 üzenetére
Na idáig jutottam:
@echo off
setlocal ENABLEDELAYEDEXPANSION
set z=0
set /a counter=1
for /f %%a in ('dir *.dx /b /s') do (
for /F "tokens=*" %%B in (%%a) do (
if %%B ==100 set /A z=2
if %%B ==102 set /A z=2
if %%B ==280 set /A z=2
if %%B ==281 set /A z=2
if %%B ==330 set /A z=2
if %%B ==331 set /A z=2
if %%B ==340 set /A z=2
if !z! ==0 echo %%B >> %%~na_uj.dxf
if !z! ==1 set /A z=0
if !z! ==2 set /A z=1
)
)
echo Fertig!
pause
exitA problémáim:
-Lassú
-Ha van egy üres sor az eredeti fileban akkor azt nem másolja le mit ha ott sem lett volna....pedig kellene -
Geripapa
aktív tag
válasz
Geripapa #853 üzenetére
Eddig már eljutottam hogy megtalálom a sort, de nem tudom hogy tudom törölni ezt meg az utánna következöt.
Ill abban sem vagyok biztos hogy ez igy a leggyorsabb mód...
@echo off
setlocal ENABLEDELAYEDEXPANSION
set vidx=0
set /a counter=1
for /f %%a in ('dir *.dxf /b /s') do (
for /F "tokens=*" %%B in (%%a) do (
SET /A vidx=!vidx! + 1
set var!vidx!=%%B
if %%B ==100 echo !vidx! %%B ---------------------------------------------------
)
)
echo Fertig!
pause
exit -
Geripapa
aktív tag
Sziasztok,
szükségem lenne egy olyan kis progira ami végignéz egy textfilet soronként és ha egyik sor értéke pontossan "100" akkor ezt a sort ill a következö sort kitörli majd megy tovább.
Sajne ez a kód nekem kissé magas...
De eddig eljutottam hogy az alábbi kóddal megnyitom az összes fielt ami érdekes de hogyan tovább?@echo off
setlocal ENABLEDELAYEDEXPANSION
set vidx=0
set /a counter=1
for /f %%a in ('dir *.dxf /b /s') do (
)
cls
echo Fertig!
pause
exit -
Petya25
őstag
Egy sima copy témában kérnék némi segítséget.
A forrás könyvtárban több fájl van dátummal-idővel a nevében.
adat_20170901120514.txt
adat_20170902110601.txt
adat_20170903131109.txt
Na ebből a listából a legkésőbbi fájl kellene elmásolnom, kvázi a legnagyobb számút kiválasztva.
Nehezítés, a könyvtárban vannak egyéb, akár még újabb fájlok is, tehát maszkolni kell, sima fájl dátum nem lesz elég.Valami ötlet?
-
varsam
őstag
válasz
csaszizoltan #844 üzenetére
szia,
köszi szépen, de sajnos nem működik ezzel (1. sorral)
-
csaszizoltan
csendes tag
C:\Users\Username\AppData\Local\Google\Chrome\Application\chrome.exe --make-default-browser
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --make-default-browser
C:\Program Files\Google\Chrome\Application\chrome.exe --make-default-browserAz első sorban a pathban a username-t át kell írni a sajátra
Valamelyikre működhet, ha van jogosultságod ehhez, a többi sort gyomlálni kell.
-
varsam
őstag
Sziasztok,
tudnátok segíteni az alábbi problémával?
Nagyvállalati környezet, sima user vagyok a gépen, semmi admin jogom nincs, Win10 Enterprise fut.
A default böngésző sajnos az Explorer, ezt szeretném átállítani Chrome-ra. Ezt meg is tudom tenni, működik is, viszont a házirend miatt minden újraindítás után visszaáll Explorerre.Tudnátok segíteni egy kis batch parancssal, amit egy kattintással meg tudok futtatni és nem kell a gépházban szórakoznom vele minden alkalommal?
Esetleg excel VBA-val is meg tudnám hívni ezt a bat fájlt valahogy? Úgy még jobb lenne.
köszi!
-
Enoch
csendes tag
Sziasztok! Batch programmal lehet valahogy e-mailt küldeni? Saját smtp adott hozzá.
-
válasz
csadi0011 #837 üzenetére
Kicsit konkrétabban? Pontosan mit szeretnél "eltekerni"?
Pl.ECHO OFF
set PORT=8081
set RULE_NAME="Open Port %PORT%"
netsh advfirewall firewall show rule name=%RULE_NAME% >nul
if not ERRORLEVEL 1 (
rem Rule %RULE_NAME% already exists.
echo Hey, you already got a out rule by that name, you cannot put another one in!
) else (
echo Rule %RULE_NAME% does not exist. Creating...
netsh advfirewall firewall add rule name=%RULE_NAME% dir=in action=allow protocol=TCP localport=%PORT%
) -
csadi0011
őstag
Sziasztok!
Win10: Vezérlőpult\Minden vezérlőpultelem\Hálózati és megosztási központ\Speciális megosztási beállítások
Ezeket a beállításokat tudom változtatni valahogy egy batch programmal?
-
-
attis71
tag
Sziasztok!
If-ben szeretném ellenőrizni, hogy fut-e már egy szolgáltatásom(windows) ezt hogy adjam meg script-ben?
Köszönöm.
Üdv, attis71. -
sellerbuyer
őstag
válasz
sztanozs #833 üzenetére
Nem a törlés részével van gond a dolognak leginkább, hanem a visszarakással, de persze kivenni is jobb a gép felől, mint szerveren.
Azt nem értem, hogy manuálisan ezt pontosan így csináljuk, a munkaállomáson fogom és domainbe rakom pár kattintással. Akkor command line-ból is mennie kellene valahogy.
Egyébként azért értelmetlen a szerver felőli megoldás, mert itt domainből (félig-meddig) kihullott gépekről van szó. Ha látom a szerverről a gépet, akkor nagyjából semmi gond nincs. De nem látom sajnos, pont ezért kell kivenni-visszatenni. AD-ban látszólag benne vannak, de gpupdate /force v. nem segít, vagy le sem fut rendesen, meg egyéb anomáliák vannak, sokszor a user be sem tud jelentkezni már. Ilyenkor kivesszük a gépeket, majd visszatesszük és szépen megy minden faján.
A visszaléptetés jelenleg úgy zajlik (mivel kivétel után nem érem el a gépet), hogy a teljesen tudatlan felhasználót telefonon vezérelve (én Bp, ő vidék...sokszor nagyon vidék) másfél, uszkve két óra alatt visszapakoltatom a gépet. Az például, hogy vezérlőpult, vagy ilyesmi, a legtöbbjük számára teljesen új. Az, hogy "kattints a bal gombbal", életében először hallott mondat, keresi a szerencsétlen a bal gombot a billentyűzeten... Már attól is teljesen befeszülnek, hogy nekik bármi ilyesmit kell csinálniuk. Felküldetni meg nem lehet az ország minden tájáról a gépeket csak ezért.
Ja, mielőtt vki írná: Teamviewer és társai tiltva vannak nálunk.
-
sztanozs
veterán
válasz
sellerbuyer #832 üzenetére
Ez miért nem megy? [link]
Miért értelmetlen a szerver felől törölni? -
sellerbuyer
őstag
Jelenleg ott tartok, hogy sem a netdom, sem a wmic, sem a powershell alatti add-computer nem műxik a "target gépen", csak szerver felől lehetne ezeket használni, de ez értelmetlen.
Nekem olyan megoldás kellene, amit magáról arról a gépről tudnék futtatni, amit a domainbe akarok léptetni. Az az érdekes, hogy ez ugye a Windows GUI-ben manuálisan eleve így műxik egyébként, létezik, hogy command line-os megoldás nincs rá?
-
sellerbuyer
őstag
Sziasztok!
Kihaltnak tűnik a topic, de azért teszek egy próbát, hátha tudtok segíteni:
A következő feladatot kellene megoldanom, ehhez kérnék segítséget tőletek. Ezt a folyamatot kellene a batch-nak tudnia (Windows XP-n, 7 és 10-en, x86 és x64-en is):
1. Gép kiléptetése tartományból. (bekéri a lokális gépnevet és a workgroup nevét)
2. Újraindítja a gépet
3. Lokális user belép manuálisan (rgazda joggal)
4. A batch tovább fut, belépteti a gépet tartományba (bekéri a tartományi gépnevet és a tartomány nevét)
5. Újraindítja a gépetPsexec-netdom join párossal tervezem megoldani a fentieket.
A batch tartalmazná egy ideiglenes (technikai) tartományi rendszergazda user-ét, pass-át, ami disabled lenne, amint végez a feladattal a batch.
A batch célja az lenne, hogy ne kelljen telefonon keresztül instruálni a felhasználót, hogy manuálisan hogyan léptesse ki-be a gépet, hanem amennyire csak lehet, automatizálva legyen a folyamat. Legjobb lenne, ha a 3. pontot is lehetne automatizálni és nem kellene a felhasználónak semmilyen rendszergazdai jogú lokális user-t megadni. Ezt gondolom, úgy kellene megoldani, hogy még az egész elején a batch létrehozna egy lokális technikai user-t rendszergazda joggal, amit a folyamat végén, az újraindítás előtt kitörölne. Ennek a user-nek a jelszavát meg lehetne adni a felhasználónak. Ehhez azonban az kellene, hogy a jelenleg lokálisan élő rendszergazda jelszavának is bent kell lennie a batch-ben, ami jókora biztonsági rés.
A batch olyan esetekben lenne alkalmazva, amikor látszólag ugyan bent van a gép domain-ben, de valójában kihullott, távolról nem elérhető sem msra-val, sem távoli asztallal, sem C$-al és/vagy egyéb anomáliák jelentkeznek. GPO-val lenne egy meghatározott mappába leküldve az összes gépre a batch+psexec, hogy szükség esetén rendelkezésre álljon lokálisan.
Nem nagyon tudom még, hogyan lehet megoldani az újraindítás utáni futást (esetleg előzőleg beleteszem indítópultba /a két részre bontott batch második részletét/) és a törlést sem.
-
mckay
aktív tag
Sziasztok!
Ti hogy fognátok hozzá ahhoz a kihíváshoz, amikor üzembiztosan, minél kevesebb interakcióval kéne tudni azt win környezetben, hogy:
- Adott egy "alfa" pendrive, ami a G:\ betűjelet viseli,
- bedugnak mellé egy "gamma" pendrive-ot, aminek tök mindegy hogy milyen betűjele van, és amire ír egy program (amúgy a G:\-ről),
- bedugnak mellé egy "béta" pendrive-ot, aminek szintén mindegy, hogy milyen betűjele van, és amire kézzel át kéne másolni egy konkrét .txt fájlt a G:\-ről,
- aztán meg kell változtatni az "alfa" pendrive betűjelét tök mindegy mire, és meg kell változtatni "béta" pendrive betűjelét G:\-re,
- le kell formázni "alfa" pendrive-ot.Mindezt azért, hogy másnap:
- Adott egy "béta" pendrive, ami a G:\ betűjelet viseli,
- bedugnak mellé egy "gamma" pendrive-ot...
(...)
- le kell formázni "béta" pendrive-ot.Jesszusom, ugye?
Lehet, hogy mégis meg kéne tanítani a felhasználót klikkelgetni...Közben, ahogy most leírtam, talán lehetne egyszerűsíteni azzal, hogy "gamma" pendrive helyett mondjuk egy ramdrive-ot alkalmazunk. Mindegy, bárhogy is csináljuk, csináltatjuk a felhasználóval, az a lényeg, hogy nem történhet írás a C: meghajtóra...
Szerintetek?
-
Earthling909
újonc
Hello! Egy kérdésem lenne:
@echo off
set /p usr="Username: "
set /p pass="Password: "Nos, azt szeretném tudni, hogy hogyan lehetne azt megcsinálni, hogy a usr és a pass változók értékét elküldi e-mail-ben?
-
csaszizoltan
csendes tag
Sajnos még ez sem tökéletes, ugyanis ha a abban a két perc végén a for ciklus alatt két (több) file is érkezik, akkor elképzelhető, hogy azokról nem tesz említést a modal window, csak az elsőnek felderítettről.
Ha jobban belegondolok, akkor nem szól a windows indulás előtt készültekről sem, tehát az éjszaka ill. munkaidőn kívül érkezett file-okról sem.
A több file érkezésének problémára megoldás lehet konkrétan ebben a programban, hogy a TIMEOUT értékét valami kis értékű prímszámra állítjuk (pontosabban relatív prím 60-ra), mondjuk 19-re , hogy még véletlenül se hangolódjon össze a batch ciklusa a percekkel (ami ebben a batchben a file-ok időpontossága) és akkor el kell viselni azt, hogy egy pdf érkezéséről többször is értesít esetleg egy két percig, de akkor sokkal biztosabb az értesítés.
Azonban sajnos most én kimerültem evvel a problémával (új kódok készítése) kapcsolatban. -
_Smooth
senior tag
válasz
csaszizoltan #823 üzenetére
Igen igen, ez remekül bevált, köszönöm ismét
Infó: számomra a 120sec még sok is (gyakoriságot tekintve), mivel kb 3-4 naponta érkezik oda bármi (sőt, van, hogy egy hétig semmi). Ezért is került nagyon perifériára és vagyunk hajlamosak megfeledkezni róla. Ezért már az is jó, ha 1-2óránként végez ellenőrzést.
De egyébként a 120sec is kiváló. Szépen csendben elvan a háttérben, ha pedig érkezik valami, már dobja is az ablakot a képernyőre.
Startup mappába bedobtam, géppel indul, törődésmentes -
Yuzaky
újonc
Sziasztok! Egy kis segítség kéne.
Elég egyszerű kérdés, de még új vagyok a Batch programozás területén.
Szóval azt szeretném kérdezni, hogy hogyan tudnám megcsinálni, hogy amikor bezárok egy fájlt (mondjuk kep.jpg), akkor automatikusan megnyíljon egy másik fájl (pl. szoveg.txt)?
előre is köszi a válaszokért! -
válasz
csaszizoltan #823 üzenetére
Nem terheli be nagyon a végtelen ciklus? Nem lenne elég csak 30-60mp-enként lefuttatni?
-
csaszizoltan
csendes tag
válasz
csaszizoltan #817 üzenetére
Ez a kód #817 nem működik, helyette ez készült, végfelhasználónál kipróbáltan
@ECHO OFF
CLS
:LOOP
SETLOCAL ENABLEDELAYEDEXPANSION
SET STAMPTIME="%DATE% %TIME%"
SET STAMPTIME=%STAMPTIME:~0,18%"
TIMEOUT /T 120 /NOBREAK
FOR /R "Drive:\Path" %%A IN (*.PDF) DO (
IF %STAMPTIME% LEQ "%%~tA" CALL :ERTESITES "%%A" "%%~tA"
)
ENDLOCAL ENABLEDELAYEDEXPANSION
GOTO :LOOP
:ERTESITES
SETLOCAL
SET MSG="tempmsg.vbs"
ECHO MsgBox "Pdf erkezett: %~1", vbSystemModal Or vbExclamation, "Pdf erkezett" >%MSG%
WSCRIPT.EXE /I %MSG%
DEL %MSG% >NUL
GOTO :EOF -
csaszizoltan
csendes tag
A pontos szintaktika, aminak hatására a megadott path-on nézi a pdf-eket:
FOR /R [drive:[path]] %%A...
sajnos nincs hálózatom és benne gyakorlatom így nem tudom kipróbálni, hogy a drive.path helyébe mit is kell írni, ha hálózati helyet akarunk, de valami ilyesmit sikerült kiderítenem (esetleg idézőjelek közé zárva, ha a path-ban space van):
FOR /R "\\számítógépnév\Path" %%A...
Hogy megszólaljon a gép ahhoz ennyi elég a megoldásomban (nem jó a csak ^G, hanem control és g billentyű egyidejű lenyomása kell)
:ERTESITES
ECHO <ctrl-G><ctrl-G><ctrl-G><ctrl-G>
GOT :EOFA chrome-os megoldásomban az lehet a jó, hogy fel kell számolni a tabokban elhelyezkedő pdf-ket, így kikerülhetetlenek maradnak a pdf-ek, de biztos megvan a saját pdf nézegetőtök, azt be kell csak helyettesíteni a chrome path helyébe, ha nem egyszerű, írjál rám privát, megoldjuk.
-
_Smooth
senior tag
válasz
csaszizoltan #817 üzenetére
Nagyon szuper, köszönöm
Már ez is nagyszerű, de chrome helyett egy sima echo (alert) ablak nem tud működni?
Ja meg a másik problem, hogy szerveren van az érintett könyvtár, nem helyi gépen.
Hol tudom megadni a vizsgálathoz szükséges elérési utat? -
csaszizoltan
csendes tag
Windows 7 sajátosságok vannak benne (Chrome path)
Magyar rendszer szükséges a helyes ISO formátumú dátum idő sorrend érdekében.
Chrome-ot indít a pdf-fel vagy egy tabot ha már fut a chrome, szerintem Firefox is tudja a pdf-et megnyitni, de nem néztem utána.
Lehetséges sajnos lyuk ebben a megoldásban ( A For ciklus után, de még a SET STAMPTIME előtt érkezik a pdf és közben percváltás történik)
A Timeout parancsban a 120 azt jelenti, hogy 120 másodpercig vár, vagyis az egész bat file ennyi időnként vizsgál újra, feltétlenül átírandó a kedvelt értékhez (de nagyobb legyen mint 1 perc a helyes egyszeri értesítés miatt).
Az :ERTESITES részben kicserélhető saját megoldásra a Chrome indítás helyett (az :ERTESITES és GOTO :EOF sor nem törlendő, csak a Chrome indítása helyettesítendő)@ECHO OFF
:LOOP
SetLocal EnableDelayedExpansion
SET STAMPTIME="%DATE% %TIME%"
SET STAMPTIME=%STAMPTIME:~0,18%"
TIMEOUT /T 120 /NOBREAK
FOR /R %%A IN (*.pdf) DO (
SET FILETIME="%%~tA"
IF %STAMPTIME% LEQ %FILETIME% CALL :ERTESITES "%%A" %FILETIME%
)
EndLocal EnableDelayedExpansion
GOTO :LOOP
GOTO :EOF
:ERTESITES
%USERPROFILE%\AppData\Local\Google\Chrome\Application\chrome.exe %1
GOTO :EOF -
_Smooth
senior tag
Néztem most itt lejjebb az egyik hozzászólásban a FileSystemWatchert. Ha ez telepítést igényel, akkor az sajna nem játszik, nincsenek a gépeken telepítési jogosultságok. Illetve nem is feltétlenül kellene ilyen"komolyabb" program, nincs mit logolni meg különösebben figyelni, csak egy alertre volna szükség.
-
_Smooth
senior tag
Sziasztok!
Egy olyan batch file-ra lenne szükségem, ami értesítést küld, ha adott könyvtárba file kerül.
(Szerveren egy könyvtárba kerülnek fel a faxon beérkezett, PDF-be mentett adatok, de ezek néha elkerülik a figyelmünket. Semmi extra elvárás nincs, csak jelezzen új beérkezés esetén).Első körben arra gondoltam, számlálhatná a fileokat és változás esetén jelez. De ha két számlálási ciklus között valaki esetleg töröl egy régebbit, de beérkezik egy új, akkor arról nem fog jelezni.
Nem tudom, hogy módosítás dátumával lehet valamit kezdeni - pl. aznapi dátummal érkező file-ok esetén dobjon egy ablakot/emailt/csipogjon, mindegy.Van erre lehetőség?
Próbáltam keresni, bár nem egyszerű, így ha már volt hasonlóról szó, nekem annak a hozzászólásnak a linkje, száma is elég (vagy hogy nagyjából mikori hozzászólások környékén kutakodjak).Köszi előre is.
Szerk:
Sőt, jobban belegondolva (ha az egyszerűbb), az is elég, ha PDF kiterjesztéssel file-t érzékel, akkor dob egy jelzést. Mivel utána úgyis áthelyezzük a beérkezett file-okat a megfelelő könyvtárakba. -
Komi28
senior tag
Sziasztok!
Olyan kérdésem lenne, hogy egy pdf-be belehetne tenni egy parancsot amivel egy adott könyvtárból megnyitja egyesével a pdf-ket. Megnyitás után egy bővítménynek (imposing) parancsát elindítja(ez elvégzi a műveletet), majd a végén menti a pdf-t és bezárja.
Lehetséges ilyet készíteni?
Köszi -
zsotto31
újonc
válasz
Csontikka #811 üzenetére
Teljesen véletlenszerűen és látszólak ok nélkül esnek ki. Regek jók, dns hibátlan, időszinkron hiba néha előfordul, de nem jellemző.
Leginkább újraindítás után vehető észre, mikor az autologonos domain userrel bejelentkező gép nem lép be, vagy megáll az adatküldés a szerver felé.
-
Csontikka
aktív tag
válasz
zsotto31 #810 üzenetére
Szia,
netdom parancsal próbálkoznék először.
Egyébként a kérdés nem is az, hogy hogy kéne őket visszapakolni, hanem hogy miért esnek ki a domain-ből, nem próbáltatok rájönni?
(
dns probléma, registry beállítás, időszinkronizálás, stb. Mi ilyenkor a hiba? Hogyan veszitek észre? A gépek naplójából nem derül ki semmi sem? Meddig jó visszarakás után? (véletlenszerű, vagy mindig ugyanannyi idő után esik ki)
) -
zsotto31
újonc
Sziasztok!
Egy kis segítség kéne, és egyelőre nem tudom milyen formában valósítható meg.
A lényeg:
Adott egy belső hálózat, amiben azonos tartományban vannak a gépek. A gépeken NT fut. Néhány esetben a gépek kiesnek tartományból, hálózaton továbbra is elérhetőek.
Adott X darab tartományból kiesett gépnév, amit egy .txt tárol.
Mi módon lehet ezt távolról megoldani, hogy visszaléptessük a gépeket?
Könnyen lehet, hogy nem is batch lesz a megoldás, de nincs ötletem nekiállni sem.
Valakinek valami ötlet, gondolat?
-
sztanozs
veterán
válasz
DrojDtroll #806 üzenetére
szerintem wmi-vel egyszerűen megoldható (ha más USB Mass storage nincs bedugva):
@ECHO OFF
SET source="c:\Temp\kiir.cs"
SET targetdir=\Temp\target\
FOR /F "skip=1 tokens=1" %%G IN ('wmic logicaldisk where "drivetype=2" get caption') DO (
mkdir "%%G%targetdir%"
copy %source% "%%G%targetdir%" /Y
) -
sztanozs
veterán
válasz
DrojDtroll #804 üzenetére
Igen - milyen OS? Milyen géped van, amibe 10 USB belemegy?
-
DrojDtroll
veterán
Erre megoldás lehet a batch?
-
Csontikka
aktív tag
válasz
magyarzoltan #800 üzenetére
-
-
sztanozs
veterán
válasz
magyarzoltan #800 üzenetére
Asszem valami ilyen kell neked: [link]
De ha jól rémlik a FileSystemWatcher nem 100%-ban megbízható.
Új hozzászólás Aktív témák
Hirdetés
- Counter-Strike: Global Offensive (CS:GO) / Counter-Strike 2 (CS2)
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- Mibe tegyem a megtakarításaimat?
- Milyen hagyományos (nem okos-) telefont vegyek?
- Amazfit Active 2 NFC - jó kör
- PlayStation 4
- Path of Exile (ARPG)
- OLED TV topic
- GTA V
- Milyen notebookot vegyek?
- További aktív témák...
- ThinkPad T14 Gen1 14" FHD IPS Ryzen 5 PRO 4650U 16GB 256GB NVMe ujjlolv IR kam gar
- Gamer pc 1080p
- ThinkPad T490 14" FHD IPS i5-8365U 16GB 256GB NVMe magyar vbill IR kam gar
- Nintendo Switch oled sok extrával, játékkal
- Xbox Series X, újrapasztázva, tisztítva, dobozában, 6 hó teljeskörű gar., Bp-i üzletből eladó!
- BESZÁMÍTÁS! MSI B450M R5 5500 16GB DDR4 512GB SSD GTX 1080Ti 11GB Rampage SHIVA Chieftec 700W
- BLUESUMMERS NVMe SSD adapter
- ASUS TUF Gaming F15 FX506 - 15.6"FHD IPS 144Hz - i5-11400H - 8GB - 512GB - RTX 3050 Ti - 1,5 év gari
- 100 - Lenovo Yoga Pro 9 (16IRP8) - Intel Core i9-13905H, RTX 4070 (ELKELT)
- 12.000 ft tól elvihető ELITRO Bankmentes , kamatmentes vásárlás .Cooler Master GM2711S Monitor
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged