- iPhone 16e - ellenvetésem lenne
- Xiaomi 15 - kicsi telefon nagy energiával
- Mobil flották
- Prohardver app (nem hivatalos)
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Poco F6 5G - Turbó Rudi
- Magisk
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Fotók, videók mobillal
- Azonnali mobilos kérdések órája
Új hozzászólás Aktív témák
-
cigam
titán
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
-
cigam
titán
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.
-
cigam
titán
@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"
-
cigam
titán
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.
-
cigam
titán
válasz
BlackPriest #1058 üzenetére
echo off
set "line=<application id="0123">"
setlocal EnableDelayedExpansion
(
echo !line!
echo !line!>line.txt
)
-
cigam
titán
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 -
-
cigam
titán
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 -
cigam
titán
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).
-
cigam
titán
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.
-
cigam
titán
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.
-
cigam
titán
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?
-
cigam
titán
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 -
cigam
titán
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.
-
cigam
titán
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)
-
cigam
titán
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%
) -
cigam
titán
válasz
csaszizoltan #823 üzenetére
Nem terheli be nagyon a végtelen ciklus? Nem lenne elég csak 30-60mp-enként lefuttatni?
-
cigam
titán
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. -
cigam
titán
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.
-
cigam
titán
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 -
cigam
titán
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
-
cigam
titán
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ó. -
cigam
titán
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. -
cigam
titán
válasz
csaszizoltan #719 üzenetére
Köszi!
-
cigam
titán
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] -
cigam
titán
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
-
cigam
titán
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 -
cigam
titán
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?
-
cigam
titán
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.
-
cigam
titán
válasz
Devilhun_HUN #673 üzenetére
xcopy /E d:\ k:\12\
-
cigam
titán
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?
-
cigam
titán
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.
-
cigam
titán
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.
-
cigam
titán
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.
-
cigam
titán
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. -
cigam
titán
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
-
cigam
titán
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]
-
cigam
titán
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
-
cigam
titán
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. -
cigam
titán
válasz
PumpkinSeed #551 üzenetére
Mit nem ad be?
Új hozzászólás Aktív témák
Hirdetés
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Dell notebook topic
- Direct One (műholdas és online TV)
- Háztartási gépek
- A Micron újszerű módszerrel javítja QLC-s SSD-jének sebességét
- Windows 11
- Kutya topik
- Bestbuy játékok
- Xbox tulajok OFF topicja
- sziku69: Fűzzük össze a szavakat :)
- További aktív témák...
- Telefon felvásárlás!! Apple iPhone SE (2016), Apple iPhone SE2 (2020), Apple iPhone SE3 (2022)
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RX 9070 XT GAMER PC termékbeszámítással
- Gyors, Precíz, Megbízható TELEFONSZERVIZ, amire számíthatsz! Akár 1 órán belül
- 14" Dell Latitude laptopok: 5400, 5480, 5490, 7480, E7440, E7450 / SZÁMLA + GARANCIA
- PlayStation Network Card (PSN) ajándékkártyák, egyenesen a Sony-tól!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest