- D1Rect: Nagy "hülyétkapokazapróktól" topik
- lezso6: Nem látszik a kurzor Chrome alatt a beviteli mezőkben?
- Lalikiraly: SÜNI energiaital.
- gban: Ingyen kellene, de tegnapra
- user2: Kia Ceed Gold 160 1.5 T-GDI MY2024
- sziku69: Fűzzük össze a szavakat :)
- Elektromos rásegítésű kerékpárok
- Gurulunk, WAZE?!
- eBay-es kütyük kis pénzért
- bambano: Bambanő háza tája
Új hozzászólás Aktív témák
-
-
-
-
-
Pedig ennél egyszerűbb nem nagyon van. Batch-ban nincs formázási lehetőség, hogy megadd hány karakteren írja ki, hány tizedesig. Viszont hozzáadhatsz nullákat, és csak az utós 2 karaktert mutatod meg:
@echo off
set counter=0
:loop
set /a counter=counter+1
set number=0%counter%
set number=
%number:~-2%echo %number%
if not %counter% == 20 goto :loop
-
-
-
-
-
-
Azt sejtettem hogy nem ilyen egyszerű
A tutorialspoint elég jó kiinduló pont.
@echo off
if "%1"=="" goto :hiba
set fajlnev=%~n1
set kiterjesztes=%~x1
if kiterjeztes=="pdf" (start "ebook-convert %1 fajlnev+".epub" "--no-image" "--unwrap-factor=0.1")
exit
:hiba
echo "Nincs megadva paraméter"Szinte biztos nem működik, de kb ilyen lenne batch-ben.
-
@echo off IF "%#%" "-eq" "0" ( echo "Parameters required!" exit "1" ) SET book=%~1 SET %~1bookext=%book% SET %~1%book%bext=%bookext% IF "%bext%" "=" "PDF" ( ebook-convert "%~1" "%1%.*%.epub" "--no-image" "--unwrap-factor=0.1" exit "1" ) ebook-convert "%~1" "%1%.*%.epub"
-
-
-
-
-
-
-
-
-
válasz
Hege1234 #1064 üzenetére
Az eredeti kérdésed szerint
csak ez van a txt-ben
11:25
Csak 2 számjegy :-al elválasztva. Ha 3 (01:42:25), akkor atokens=1,2,3
így az első 3 találatot adja vissza, ahol már kap értéket a %%I is.Ezt az enter dolgot sem értem. Az echo eleve tesz egy kocsi vissza új sor (CRLF) jelzést, akárcsak az echo. Tippem szerint egy programnak nem tudod így szimulálni az ENTER gomb lenyomását.
-
-
válasz
BlackPriest #1058 üzenetére
echo off
set "line=<application id="0123">"
setlocal EnableDelayedExpansion
(
echo !line!
echo !line!>line.txt
)
-
-
válasz
STC Speed #977 üzenetére
Nincs elöttem Windows, nem tudom kisakkozni, de valami ilyesmi:
Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "C:\Folder1\"
Set objFolder = objFSO.GetFolder(objStartFolder)
Set colFiles = objFolder.Files
For Each objFile in colFiles
strFileName = objFile.Name
If objFSO.GetExtensionName(strFileName) = "xls" Then
InputFile = strFileName
SheetName = "Munka1"
OutputFile = "C:\Folder2\"&InputFilename
Ext = "44"
Set objExcel = CreateObject("Excel.application")
objExcel.application.visible=false
objExcel.application.displayalerts=false
set objExcelBook = objExcel.Workbooks.Open(InputFile)
objExcel.Sheets(SheetName).Select
objExcelBook.SaveAs OutputFile, Ext
objExcel.Application.Quit
objExcel.Quit
End If
Next -
-
-
-
-
válasz
elistvan #960 üzenetére
A kódot is mutatja, de továbbra sem válaszoltál a path kérdésre. Miért?
Plusz látszólag nem
DIR C:\ > C:\TEMP\C_MAPS.TXT
van a kódodban, hanem
DIR C:\ 1> C:\TEMP\C_MAPS.TXTHa a kód elejére még beszúrod a
@ECHO OFF
sort, akkor látni fogod, hogy csak azt írta ki, hogy
A parancs sikeresen lefutott -
-
válasz
elistvan #956 üzenetére
Cégnél maradt a laptopom, macOS alatt nem tudom kipróbálni
rem Miért írod át a path változót?
PATH C:\
rem Lefut a listázás
DIR C:\ > C:\TEMP\C_MAPS.TXT
rem A dir parancs visszatérési kódjától függően mást ír ki.
IF %ERRORLEVEL% EQU 0 (Echo A parancs sikeresen lefutott) ELSE (Echo Hiba tortent)Ha nem jön jobb válasz, holnap este megnézem (ha el nem felejtem).
-
-
-
Batch-ban elég körülményes, mert az adott hónap határozza meg, hogy hány napos(nem is beszélve a szökőévekről)
Általában erre van a legtöbb találat:
::================================================
:: TOMORROW.BAT - Written by Paul Tomasi (c)2010
::
:: Function to return tomorrow's date
::================================================
@echo off
set /a d=%date:~0,2%
set /a m=%date:~3,2%
set /a y=%date:~6,4%
:loop
set /a d+=1
if %d% gtr 31 (
set d=1
set /a m+=1
if %m% gtr 12 (
set m=1
set /a y+=1
)
)
xcopy /d:%m%-%d%-%y% /h /l "%~f0" "%~f0\" >nul 2>&1 || goto loop
echo %d%/%m%/%y%De ugye itt minden hónap 31 napos. Ezt elkerülendő egy ügyes trükk, hogy kiszámolod hogy a jelenlegi (Julianus) naptár szerinti hányadik nap van ma. Ahhoz hozzáadsz 1-et, és kiszámolod, hogy az melyik év hányadik haónapjának melyik napja.:
@echo off &SETLOCAL
SET "today=%date%"
ECHO(today is %today%
CALL:DateToJDN %today% todayNo
ECHO(this is day no. %todayNo%
SET /a tomorrowNo=todayNo+1
ECHO(tomorrow is day no. %tomorrowNo%
CALL:JDNToDate %tomorrowNo% tomorrow
ECHO(tomorrow is %tomorrow%
GOTO:EOF
rem Convert the date to Julian Day Number
:DateToJDN dd.mm.yyyy jdn=
setlocal
set date=%1
set /A yy=%date:~-4%, mm=1%date:~-7,2% %% 100, dd=1%date:~-10,2% %% 100
set /A a=mm-14, jdn=(1461*(yy+4800+a/12))/4+(367*(mm-2-12*(a/12)))/12-(3*((yy+4900+a/12)/100))/4+dd-32075
endlocal & set %2=%jdn%
exit /B
rem Convert Julian Day Number back to date
:JDNToDate jdn dd.mm.yyyy=
setlocal
set /A l=%1+68569,n=(4*l)/146097,l=l-(146097*n+3)/4,i=(4000*(l+1))/1461001,l=l-(1461*i)/4+31,j=(80*l)/2447,dd=l-(2447*j)/80,l=j/11,mm=j+2-(12*l),yy=100*(n-49)+i+l
if %dd% lss 10 set dd=0%dd%
if %mm% lss 10 set mm=0%mm%
endlocal & set %2=%dd%.%mm%.%yy%
exit /B
endlocalCsak itt is figyelni kell, hogy angol, vagy magyar kiosztású a dátum.
-
Ezt nem az arguments kéne, hogy tartalmazza?
Már csak azért is, mert ezt írja:
@REM You can add extra arguments to imapsync after the variable named %arguments%És ez a 2. sorban szerepel is
--host2 %%J --user2 %%K --password2 %%L %%M %arguments% és nincs a végén " ^"
Vagyis a te általad beszúrt sort parancsként próbája értelmezni, nem az imapsync paraméterének.
Az egészet 1 sorba kelene írni:
@imapsync --host1 %%G --user1 %%H --password1 %%I --host2 %%J --user2 %%K --password2 %%L %%M %arguments% --automap --useuid --nossl1 --notls1Csak így több sorra bontva teszik olvashatóva a kódot.
-
-
-
-
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?
-
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 -
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)
-
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%
) -
-
válasz
csaszizoltan #823 üzenetére
Nem terheli be nagyon a végtelen ciklus? Nem lenne elég csak 30-60mp-enként lefuttatni?
-
-
Dr.Batcher Business Edition
6 napig ingyenes.
A Dr.Batcher egy olyan segédprogram, amely segít létrehozni és szerkeszteni kötegelt fájlokat (BAT és CMD fájlokat) gyorsan és egyszerűen. Ez a ma elérhető legerősebb és legegyszerűbb szerkesztő. A Dr.Batcher célja, hogy mind a kezdő, mind a haladó felhasználók számára könnyen használható legyen. Két különböző módban működhet: egyszerű és professzionális. Az első módban vizuális szerkesztő és varázslók segítségével hozhatod létre a kódot. A második mód egy profi script szerkesztő buborék súgóval, szintakszis kiemelővel és könyvjelzőkkel. Bármikor átkapcsolhatsz az egyszerű és professzionális mód között, amikor erre szükséged van. Tartalmaz egy varázslót, amivel a batch kódot futtatható programmá alakíthatod EXE, és létrehozhatsz biztonsági másolatot a parancsfájljaidról. Az így létrehozott biztonsági másolatot betömöríti (ZIP, CAB), amit kicsomagolva helyreállíthatod a munkád. -
válasz
kemkriszt98 #753 üzenetére
Mac elött ücsörgök, nem tudom kipróbálni, de ez a videó tuti segít.
Ha kitörlöd azt, hogy mire mutasson a shortcut, naná, hogy nem mutat sehova.
-
válasz
kemkriszt98 #751 üzenetére
A kettőből kell 1et faragni, vhogy így:
set WshShell = WScript.CreateObject("WScript.Shell" )
strUserProfile = WshShell.ExpandEnvironmentStrings("%USERPROFILE%")
set oShellLink = WshShell.CreateShortcut(Wscript.Arguments.Named(strUserProfile & "\Start Menu\Programs\Startup\a.tx") & ".lnk")
oShellLink.TargetPath = Wscript.Arguments.Named("a.txt")
oShellLink.WindowStyle = 1
oShellLink.Save -
válasz
kemkriszt98 #749 üzenetére
Dim fso, wshShell, strUserProfile
Set fso = CreateObject("Scripting.FileSystemObject")
Set wshShell = CreateObject("WScript.Shell")'ezz a lényege, itt kéri le a felhasználói profil elérési útját
strUserProfile = wshShell.ExpandEnvironmentStrings("%USERPROFILE%")fso.CopyFile "c:\innen\masolom\program.lnk", strUserProfile
-
válasz
kemkriszt98 #747 üzenetére
Mert az mklink nem shorcut-ot hoz létre egy programról, hanem szimbolikus hivatkozást. A kettő nem ugyanaz.
Viszont egy kis vbs scriptel megoldható. -
-
-
Hátha vki nem ismeri: B2E
BAT parancsállományok konvertálása EXE formátumba. A bat állományok némileg eltérnek a normál bat állományoktól: lehet vele láthatatlan alkalmazásokat késziteni; tartalmazhatnak adatokat a bináris állományokról, ikonokat, valamint verzió információkat is. 32 bites és 64 bites állományokat is lehet létrehozni vele.
Egész jó játék. -
-
-
válasz
csaszizoltan #719 üzenetére
Köszi!
-
válasz
csaszizoltan #716 üzenetére
A set fajlnev=%date%.txt-ba nem kell pont, a dátum automatice tesz egy pontot a dátum végére (pl. 2015.10.12.)
Igen, erre napkozben rájöttem, mert bekapcsolt echo-val állandóan panaszkodott, hogy nincs fajlnev nevü fájl
(find "%%A" < teljes_lista.txt > nul || >> teljes_lista.txt echo.%%A)
Ez ugye úgy működik, hogy a find parancs rákeres minden egyes sorra a teljes_lista.txt-ben, és a parancs kimenetét elküldjük a semmibe. Ettől még visszaad egy errorlevel értéket, és ezt használja fel arra, hogy az adott sort beletegye a teljes_lista.txt-be, vagy ne.
[link] -
Sőt a végére odabiggyesztve ezt, fullextrás lett:
rem sorbarendezi a napi listát
sort ftp-%fajlnev% /o ftp-%fajlnev%
rem kiveszi a duplikátumokat
for /f "tokens=* delims= " %%A in (ftp-%fajlnev%) do (find "%%A" < teljes_lista.txt > nul || >> teljes_lista.txt echo.%%A)
goto:eofBár ez utóbbi csak holnap fog kiderülni
-
válasz
csaszizoltan #713 üzenetére
Köszi a tippeket, végül ez lett belőle:
@echo off
setlocal EnableDelayedExpansion
set fajlnev=%date%txt
d:
cd D:\PortableApps\ftp-list
del fajlnev
winscp.com /script=ftpserverem>>%fajlnev%
rem 5=fájlméret byte-okban
rem 6=hónap rövid neve
rem 7=nap sorszáma
rem 8=idő
rem 9-=fajlnev
for /f "skip=11 tokens=5,6,7,8,* delims= " %%A in (%fajlnev%) do call :sorfeldolgozas "%%E" "%%A" "%%B" "%%C" "%%D"
goto :vege
:sorfeldolgozas
set nev=%~1
set /a meret=%~2/1024/1024
if "%~3" == "Jan" set honap=01
if "%~3" == "Feb" set honap=02
if "%~3" == "Mar" set honap=03
if "%~3" == "Apr" set honap=04
if "%~3" == "Maj" set honap=05
if "%~3" == "Jun" set honap=06
if "%~3" == "Jul" set honap=07
if "%~3" == "Aug" set honap=08
if "%~3" == "Sep" set honap=09
if "%~3" == "Oct" set honap=10
if "%~3" == "Nov" set honap=11
if "%~3" == "Dec" set honap=12
if %~4 lss 10 (set nap=0%~4) else (set nap=%~4)
set ora=%~5
echo %honap%-%nap%,%ora%,%nev%,%meret%MB>>ftp-%fajlnev%
:vege -
Már nagyon péntek van, és nem forognak a kerekek
winscp-vel lekérek egy könyvtárlistát, mert a beépített ftp nem ismeri a passive módot.
Hogyan tudnám kigyomlálni a listát emberi fogyasztásra alkalmas formába?Connecting to ftp.szerverem.hu ...
Connected
Starting the session...
Session started.
Active session: [1] user@ftp.szerverem.hu
/Konyvtaram
D--------- 0 0 ..
-rw-rw-rw- 0 user group 1433338128 Oct 6 19:40 151006 fájl1
-rw-rw-rw- 0 user group 206993412 Sep 22 17:55 fájl2
-rw-rw-rw- 0 user group 195131396 Oct 3 13:18 fájl3Az első pár sort el kellene dobni, és csak a fájl listát meghagyni, átalakítani:
2015-10-06 19:40 fájl1 1433MB
2015-09-22 17:55 fájl2 206MB
2015-10-03 13:18 fájl3 195MBAz már csak hab lenne a tortán, ha dátum szerint lenne rendezve a lista. Attól tartok valami alap célprogramot kell hozzá faragni. Vagy tévedek?
-
válasz
csaszizoltan #706 üzenetére
Nekem az jött le, hogy napi szinten készül x db fotó, mindegyik 01-el kezdődő sorszámmal. Ezeket kellene átmozgatni egy másik mappába, de úgy hogy az ottani folyamatos sorszámozású képek sorszámait folytatja. (Na ezt jól megaszontam én is
)
Tehát a célmappában vannak már fájlok 01-xy.jpg,02-sd.jpg,....3546-ab.jpg. A forrás könyvtár 01-df.jpg fájljából 3547-df.jpg lesz, és így tovább.Pesze simán félre is érthettem, ezért jó lenne egy nyugtázás, vagy cáfolat.
-
-
-
válasz
Devilhun_HUN #673 üzenetére
xcopy /E d:\ k:\12\
-
-
Másik thread-ben előjött egy kérdés, hogy batch fájlból hogyan ellenörzöl lemezt, ha foglalt.
az echo i|chkdsk c: /F működik, de másik meghajtón két kérdést tesz fel. Az elsőre (kényszerített leválasztás) n a helyes válasz, a második kérdésre i a válasz(következő indulásra időzítse)Hogyan tudok megadni neki 2 választ? Vagy elég az echo ni| chkdsk d: /F?
-
-
-
válasz
DAVID0000 #653 üzenetére
Működnie kell akkor is. Ird le ide is a parancsot amit kiadsz, és másold ide az esetleges hibaüzenetet, vagy pontosan leírva azt, hogy mi nem működik.
pl. van egy c:\kepek könyvtár, és az aban tárolt fájlokat le akarod másolni pendrive-ra, akkor kiadod a
copy c:\kepek e:\masolat
parancsot. Ez az összek kepek mappában tárolt fájlt (az alkönyvtárakat nem!) lemásolja a pendrive masolat mappájába.Igen, számítanak. Valami "érthetetlen" oknál fogva a notepad-ban leírt c:\képek mappa a batch végrehajtásakor nem a képek mappára mutat.
-
válasz
Kiskopika #652 üzenetére
tuti batch-ből akarod? Időzítve 1xübb
Amúgy meg a runas ill. psexec parancsok segíthetnek.
-
-
-
-
-
Mit szólnál ehez:
@echo off
pushd %~dp0
set talalat=
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i: call :keres %%i
echo %talalat%
popd
goto :eof
:keres
%1:
cd \
for /f %%a in ('dir marker.mark /b /s') do set loc=%%a
set talalat=%talalat%%loc%Kicsit megtrükköztem, mert nem csak 1 találat lehet, hanem több is. Ezt aztán kásőbb felsolgozhatod kedved szerint.
-
-
válasz
e-newsee #619 üzenetére
Igen, pl.
start valami.exe
Ugyanakkor ilyen spéci begépelem beillesztem varázslatokra inkább az autohotkey alkalmas. -
-
Nem értem a kérdést. Hol van itt "Tools" mappa?
tippem szerint a másolás vhogy így néz ki:
copy network_drive.bat "%USERPROFILE%\My Documents"
copy network_drive.vbs.lnk "%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\StartUp"Pontos szintakszis nincs lecsekkolva, OSX alatt nem megy
-
válasz
jagermester #608 üzenetére
Mármint az asztalra kitett ikonokat és azok pozícióját menti el? Ezt batchból nem lehet. Erre külön program van: pl [link]
-
-
-
-
-
válasz
PumpkinSeed #555 üzenetére
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
-
válasz
PumpkinSeed #553 üzenetére
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. -
válasz
PumpkinSeed #551 üzenetére
Mit nem ad be?
-
-
-
Új hozzászólás Aktív témák
Hirdetés
- Szeged és környéke adok-veszek-beszélgetek
- E-book olvasók
- Milyen notebookot vegyek?
- Motoros topic
- Egyre csak fejlődik az AI, emberek tízezreit rúgja majd ki a BT
- Okosóra és okoskiegészítő topik
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Projektor topic
- lezso6: Nem látszik a kurzor Chrome alatt a beviteli mezőkben?
- Lalikiraly: SÜNI energiaital.
- További aktív témák...
- IPAD AIR 13" M3 WIFI 256GB KÉK
- Nike Airmax 720 43-as sneaker eladó
- Latitude 5440 14" FHD IPS i7-1365U 16GB 512GB NVMe magyar vbill ujjlolv IR kam gar
- Lenovo S10-2 Intel Atom retró csajszis netbook eladó
- HP Elitebook 840 G6, 14" FULL HD IPS, I7-8665U CPU, 16GB DDR4, 256GB NVMe SSD, WIN 11, 1 év garancia
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Intel Core i7 8700K 6 mag 12 szál processzor garanciával hibátlan működéssel
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- HYNIX 2GB DDR3 RAM eladó
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X3D 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest