- Android Auto és Carplay utólag? A Carpodgo Mini kicsi és olcsóbb, mint a nagyok
- Apple Watch
- Samsung Galaxy A56 - megbízható középszerűség
- Samsung Galaxy Watch8 és Watch8 Classic – lelkes hiperaktivitás
- Hivatalos a OnePlus Watch 4
- Bemutatkozott az Oppo kamerás csúcsmodellje
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Bemutatkozott a Poco X7 és X7 Pro
- Mobil flották
- One mobilszolgáltatások
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - 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 Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! 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
-
sztanozs
veterán
Üdv!
Rendszergazdaként szeretnék futtatni egy egyszerű parancsot:setup.exe /configure configuration.xml
Ha nyitok egy parancssort rendszergazdaként, megy. Beírom ugyanezt egy scriptbe, azt futtatom rendszergazdaként, akkor már nem találja a setup.exe-t.'setup.exe' is not recognized as an internal or external command,
operable program or batch file.
Ezt is próbáltam:
cd %~dp0
setup.exe /configure configuration.xml
A script egy mappában van a setup.exe-vel. Mi a titok?futtasd teljes path-tal:
c:\folder\akarmi\setup.exe -
sztanozs
veterán
-
sztanozs
veterán
Mert a 0-val kezdodo szamokat (ha nincs benne 8 vagy 9) akkor az atoi c fuggveny octal-nak erelmezi, ha automata ertelmezesre van allitva (base=0):
The default is decimal, but you can specify octal 8, hexadecimal 16, or decimal 10. If 0 is the base, the string will be parsed as a hexadecimal if it has a leading 0x and as an octal if it has a leading 0. Otherwise, it will be treated as a decimal. -
sztanozs
veterán
Belefutottam egy érdekes hibába:
:numberecho.&set /p COUNT=Adj meg egy szamot, majd nyomd meg az Entert: ||GOTO:EOFif %COUNT% GTR 14 echo Hibas szam, ismeteld meg & goto :numberecho %COUNT%Ez egy script részlete, ami működik, ha pl. azt írom be, hogy 15, de a 015 szerinte nem nagyobb 14-nél. Van erre jobb módszer, mint az, hogy előtte megnézem hány számjegyű a beírt szám, és ha több, mint kettő, akkor megy a hibaüzenet?
szvsz a 015 ot OCT-ra ertelmezi - 015(OCT) = 13(DEC)
-
sztanozs
veterán
-
sztanozs
veterán
Úgy van a script, hogy ha nem megy a mount akkor próbál egy delete-t és utána reconnect.
De hát nem megy. És mindig csak egy specifikus irányba.
Nem tudom, hogy a másik oldalon mi van. De megfordult a fejemben, hogy ott se minden kerek.Egyébként úgy tűnik, hogy a SETLOCAL EnableDelayedExpansion -t ha a mount utánra teszem akkor jó.
Kíváncsi leszek, hogy 4-5 nap múlva mit tapasztalatok.alternativakent probalj meg esetleg a \\szerver\share helyett eloszor egy \\szerver\ipc$-t (meghajtonev nelkul termeszetesen) hatha az segit.
-
sztanozs
veterán
Ma azt hittem, hogy felrugom a windowst újra.
Kb 2hete szívok azzal, hogy ugyanaz a script 1 gépen a 8 ból nem fut le.
És folyamatosan az egyik net use-sal van gondja.
Hibaüzenet a klasszik: system error 87 the parameter is incorrect.
A mountolásos részt átrakva egy másik batch file-ba szépen lefut, kézzel lefut, eredeti batchfile-ból nem fut le.
Az az van amikor lefut ha egy net use /d -vel inditok akkor egy darabig jó. Teljes képzavar.
A poén, hogy a 2 mountolásból mindig csak egy kapcsolattal van gondja. Hiába cseréltem fel akkor is ugyanazzal az eléréssel volt gondja.
Amit kiderítettem, hogy előzőleg valaki fixen betűjelhez rendelte, de ki is törölte.
Ez még a registry-ben benne volt. Kitöröltem, de a helyzet nem lett jobb.Majd kínomban fogtam és a script legelejére tettem és most jó.

Mi a windows-os bánat baja lehet? Hívjak hozzá ördögűzőt?Session problema lehet. Mostanaban a MS kavart valamit a session-okkel, mert en is tapasztalom, hogy az SMB kapcsolatok egy ido utan bontanak, es kell jo par masodperc (akar fel perc is), mig ujraepiti oket az OS.
Erdemes kiprobalni, hogy mount elott megprobalod bontani a kapcsolatot:NET USE /delete \\UNC\path -
sztanozs
veterán
Üdv!
Egy egyszerű problémát kellene megoldanom, de nem jövök rá - pedig tuti, hogy van megoldás.Beolvasok egy paramétert, ami egy 4 jegyű szám.
Ha SET /A var = %1 (azaz numerikus a típusa), akkor tökéletes, ha nem 0-val kezdődik. Viszont ha 0-val kezdődik, akkor invalid number.
Ha SET var = %1 (azaz string a típusa), akkor viszont 0 értéket vesz fel.
Elvileg utóbbi kellene nekem, legyen string, abban ott kellene lennie a 0-nak az elején, de az egyáltalán nem működik.
Már kínomban az angol nyelvű oldalakat is bújtam, de egyszerűen semmi.
Nekem jó lenne számként is (0123 helyett 123), azt már ki tudnám pótolni, ha nem invalid numberre futna, de a string adná magát igazából.
Tudom, lehetne csak 3 (vagy 2, 1) számjegyet beadni, de nem túl elegáns, ráadásul lehet a 4 számjegy 0000 is, ott nem lenne mit beírni, így elcsúsznának a paraméterek (ez 4-ből az első paraméter).
Köszönöm, ha valaki megszán a megoldással.
Ha 0-val kezdodik, akkor a parancs oktalis szamnak ertelmezi, tehat a 8 es 9-es szamok ervenytelenek, raadasul az ertek tizes szamrendszerben is mas lesz:
01 (okt) = 1 (dec)
07 (okt) = 7 (dec)
010 (okt) = 8 (dec)Itt van par jo megoldas:
https://stackoverflow.com/questions/14762813/remove-leading-zeros-in-batch-file -
sztanozs
veterán
Sziasztok!
Az egyik programnál amit használok egy ilyen bat-al indítom:
CLIP < CONNECT.TXT
start "reboot_launcher" "C:\Program Files\reboot_launcher\reboot_launcher.exe"A connect.txt-ben egy ip cím van, így ezt automatán vágólapra helyezi.
A kérdésem az lenne, hogy ezt a vágólapra helyezést ezt lehet valmi parancsal késleltetni?
Pl hogy a bat file elindÍtása után 10-15 mp mulva helyezze a connect.txt tartalmát vágólapra?A segítséget előre is köszi!
-
sztanozs
veterán
Igen eleg egyszer kiadni a
SETLOCAL EnableDelayedExpansion
parancsot, ha menet kozben ki akarod valamiert kapcsolni akkor kell csak aSETLOCAL DisableDelayedExpansion
parancs. Viszont a valtozok hasznalatanal figyelni kell, hogy nem mindig %valtozo_nev%, hanem !valtozo_nev! formatumot is kell(het?) hasznalni. -
sztanozs
veterán
Ismét én, egy anomáliával.
@echo off
SET "LOGFILE=d:\test.log"
SET "local_folders1=D:\Folder1 D:\Folder2 D:\Folder3 D:\Folder4"
SET "local_folders=%local_folders1% D:\Folder5 D:\Folder6 D:\Folder7 D:\Folder8"
FOR %%x IN (%local_folders%) DO (
IF EXIST %%x ECHO %%x >>%LOGFILE%
)Nézegettem a logokat és legtöbbször csak a második SET tartalma van benne:
D:\Folder5
D:\Folder6
D:\Folder7
D:\Folder8Kézzel lefuttatva akárhányszor csinálom mindig jó.

Itt már megint mi a bánat van?
Nem vagyok benne biztos, de szerintem EnableDelayedExpansion-t kell hasznalni.
https://ss64.com/nt/delayedexpansion.html -
sztanozs
veterán
-
sztanozs
veterán
Ha nem baj, nem forditom le magyarra (megfelelo sort kiemeltem):
Parameter Extensions
When an argument is used to supply a filename then the following extended syntax can be applied:
We are using the variable %1 (but this works for any argument, including FOR parameters).
%~f1 Expand %1 to a Fully qualified path name - C:\utils\MyFile.txt
%~d1 Expand %1 to a Drive letter only - C:
%~p1 Expand %1 to a Path only e.g. \utils\ this includes a trailing \ which will be interpreted as an escape character by some commands.
%~n1 Expand %1 to a file Name without file extension or path - MyFile
or if only a path is present, with no trailing backslash, the last folder in that path.
%~x1 Expand %1 to a file eXtension only - .txt
%~s1 Change the meaning of f, n, s and x to reference the Short 8.3 name (if it exists.)
%~1 Expand %1 removing any surrounding quotes (")
%~a1 Display the file attributes of %1
%~t1 Display the date/time of %1
%~z1 Display the file size of %1
%~$PATH:1 Search the PATH environment variable and expand %1 to the fully qualified name of the first match found.The modifiers above can be combined:
%~dp1 Expand %1 to a drive letter and path only.
%~sp1 Expand %1 to a path shortened to 8.3 characters.
%~nx2 Expand %2 to a file name and extension only. -
sztanozs
veterán
Akkor ennek mennie kell:
@echo off
SET "A510=c:\temp\A510"
SET "fullstamp=2023-02-28"
SET "b_backup=\\server\backup"
IF EXIST "%A510%" (
FOR /R "%A510%" %%G IN (*) DO (
IF %%~zG GTR 0 "c:\Program Files (x86)\7-Zip\7z.exe" a "%b_backup%\%fullstamp%.zip" "%%G"
)
) -
sztanozs
veterán
Win11-en itthon:
Ez működik:FORFILES /P "%A510%" /S /M *.* /C "cmd /S /C ^0x22c:\Program^ Files^ ^(x86)\ImgBurn\ImgBurn.exe^0x22"Ezek nem
FORFILES /P "%A510%" /S /M *.* /C "cmd /S /C ^0x22c:\Program Files 0x28x860x29\ImgBurn\ImgBurn.exe^0x22"
'"c:\Program' is not recognized as an internal or external command,
operable program or batch file.sztanozs - elvileg ez a te mintád ami szintén nem megy a win11-en.
FORFILES /P "%A510%" /S /M *.* /C "cmd /S /C 0x22c:\Program Files 0x28x860x29\ImgBurn\ImgBurn.exe0x22"
'c:\Program' is not recognized as an internal or external command,
operable program or batch file.FORFILES /P "%A510%" /S /M *.* /C "cmd /S /C "c:\Program Files 0x28x860x29\ImgBurn\ImgBurn.exe""
FORFILES /P "c:\oem\CareCenter\DebugLog" /S /M *.* /C "cmd /S /C "c:\Program Files 0x28x860x29\ImgBurn\ImgBurn.exe""
ERROR: Invalid argument/option - 'Files'.FORFILES /P "%A510%" /S /M *.* /C "cmd /S /C "c:\Program Files (x86)\ImgBurn\ImgBurn.exe""
FORFILES /P "c:\oem\CareCenter\DebugLog" /S /M *.* /C "cmd /S /C "c:\Program Files (x86)\ImgBurn\ImgBurn.exe""
ERROR: Invalid argument/option - 'Files'.Powershell:
$A510="c:\temp\A510\"
$fullstamp="2023-02-28"
$b_backup="\\server\backup"
Get-ChildItem $A510 -recurse -Filter *.* | ForEach-Object {
if ($_.Attributes -ne "Directory") {
if ($_.Length -gt 0) {
Start-Process -WorkingDirectory $A510 -FilePath "c:\Program Files (x86)\7-Zip\7z.exe" -ArgumentList "a `"$($b_backup)$($fullstamp).zip`" `"$($_.Directory)\$($_.Name)`"" -Wait
}
}
} -
sztanozs
veterán
Ezert is irja a help, hogy celszeru a FORFILES helyett sima FOR+parameter extension-t hasznalni... Egy bughalmaz az egesz.
Vagy meginkabb powershell, azt sokkal nehezebb elb*bni. -
sztanozs
veterán
Win11-en itthon:
Ez működik:FORFILES /P "%A510%" /S /M *.* /C "cmd /S /C ^0x22c:\Program^ Files^ ^(x86)\ImgBurn\ImgBurn.exe^0x22"Ezek nem
FORFILES /P "%A510%" /S /M *.* /C "cmd /S /C ^0x22c:\Program Files 0x28x860x29\ImgBurn\ImgBurn.exe^0x22"
'"c:\Program' is not recognized as an internal or external command,
operable program or batch file.sztanozs - elvileg ez a te mintád ami szintén nem megy a win11-en.
FORFILES /P "%A510%" /S /M *.* /C "cmd /S /C 0x22c:\Program Files 0x28x860x29\ImgBurn\ImgBurn.exe0x22"
'c:\Program' is not recognized as an internal or external command,
operable program or batch file.FORFILES /P "%A510%" /S /M *.* /C "cmd /S /C "c:\Program Files 0x28x860x29\ImgBurn\ImgBurn.exe""
FORFILES /P "c:\oem\CareCenter\DebugLog" /S /M *.* /C "cmd /S /C "c:\Program Files 0x28x860x29\ImgBurn\ImgBurn.exe""
ERROR: Invalid argument/option - 'Files'.FORFILES /P "%A510%" /S /M *.* /C "cmd /S /C "c:\Program Files (x86)\ImgBurn\ImgBurn.exe""
FORFILES /P "c:\oem\CareCenter\DebugLog" /S /M *.* /C "cmd /S /C "c:\Program Files (x86)\ImgBurn\ImgBurn.exe""
ERROR: Invalid argument/option - 'Files'.Nekem Win10 van, lehet, hogy ez a kulonbseg...
-
sztanozs
veterán
ez a forfiles sajatja, nem a cmd/c ertelmezi, forfile commandban nem kell escape-elni
-
sztanozs
veterán
Ez nekem mukodik x86-bol:
@echo off
set "A510=c:\temp\py"
set "fullstamp=2023-02-28"
set "b_backup=\\server\backup"
IF EXIST "%A510%" (
FORFILES /P "%A510%" /S /M *.* /C "cmd /S /C if @isdir==FALSE if @fsize GTR 0 0x22c:\Program Files 0x28x860x29\Microsoft Visual Studio\Shared\Python39_64\python.exe0x22 -c 0x22print(r'%b_backup%\%fullstamp%.zip @file')0x22"
)Kimenet:
\\server\backup\2023-02-28.zip certificates.py
\\server\backup\2023-02-28.zip search_dump.py
^CTerminate batch job (Y/N)? -
sztanozs
veterán
-
sztanozs
veterán
IF EXIST "d:\Reports\" (FORFILES /P "d:\Reports" /S /M *.* /C "cmd /C "if @isdir==FALSE if @fsize "c:\Program Files (x86)\7-Zip\7z.exe" a c:\temp\2023-02-28.zip @FILE" )
ERROR: Invalid argument/option - 'Files'.
Type "FORFILES /?" for usage.Ha a /C utáni if elől kiveszem a " akkor lefut, de a zip-et nem csinálja meg.
@Hege -
itt a kimenet és továbbra sem kreálódik meg a zip:IF EXIST "c:\temp\A510" (FORFILES /P "c:\temp\A510" /S /M *.* /C "cmd /C if @isdir==FALSE if @fsize \"\"c:\Program Files (x86)\7-Zip\7z.exe\"\" a c:\temp\2023-02-28.zip @FILE" )Oh, nem olvastam el:
To include special characters in the command line, use the hexadecimal code for the character in 0xHH format (ex. 0x09 for tab). Internal CMD.exe commands should be preceded with "cmd /c".
talan igy:IF EXIST "%A510%" (
FORFILES /P "%A510%" /S /M *.* /C "cmd /C if @isdir==FALSE if @fsize 0x22c:\Program Files 0x28x860x29\7-Zip\7z.exe0x22 a %b_backup%\%fullstamp%.zip @FILE"
) -
sztanozs
veterán
Próbáltam azt is, de azzal se ment. %PROGRAMFILES(X86)%
Környezeti változó megint egy kis túlkomplikálása a dolgoknak. A legegyszerűbb ami elsőre is működött, hogy a cmd /c -ben egy másik batch file-t hivok meg, ott frankón működött escape-lés nélkül a 7zip elérése.
De ez megint egy hibalehetőség. Később ha új gépre lesz rakva akkor ott is minden beállítást újra csinálni...
Nem akarok én bonyolult dolgokat, de a legjobb az volna, ha a jóképességű cmd tudná normálisan kezelni amit kell.fyki:
If /C or /K is specified, then the remainder of the command line after
the switch is processed as a command line, where the following logic is
used to process quote (") characters:
1. If all of the following conditions are met, then quote characters
on the command line are preserved:
- no /S switch
- exactly two quote characters
- no special characters between the two quote characters,
where special is one of: &<>()@^|
- there are one or more whitespace characters between the
two quote characters
- the string between the two quote characters is the name
of an executable file.
2. Otherwise, old behavior is to see if the first character is
a quote character and if so, strip the leading character and
remove the last quote character on the command line, preserving
any text after the last quote character.talan igy jo lesz:
IF EXIST "%A510%" (
FORFILES /P "%A510%" /S /M *.* /C "cmd /C "if @isdir==FALSE if @fsize "c:\Program Files (x86)\7-Zip\7z.exe" a %b_backup%\%fullstamp%.zip @FILE"
) -
sztanozs
veterán
-
sztanozs
veterán
-
sztanozs
veterán
Hát igen, ez még bejátszhat. De ez ellen sztem az outlookos megoldás sem védene.
Lehet vmi felugró ablakos megoldás kellene (elküldi a levelet YES/NO). Ha feldobja elém az ablakot talán nem felejtem el.
Akkor:
Private Sub Application_Quit()
If MsgBox("Elküldjem a kilépős emailt?", vbYesNo + vbCritical, "Nap végi email") = vbYes Then
Dim mail As MailItem
Set mail = Application.CreateItem(olMailItem)
mail.To = "email_to_send_to@server.address"
mail.CC = "email_to_send_cc@server.address"
mail.Subject = "kötelezõ subject"
mail.Send
Set mail = Nothing
Else
'Normál kilépés
End If
End Sub -
sztanozs
veterán
Az outlook-os megoldással nem tudtam megcsinálni, de végül az asztalra kiraktam egy vbs fájlt amiben lefut az outlook indítás, levélküldés és egy shuthdown. Ez most működik, bár lehet nem valami elegáns.
SecondsToDelay = "0"
ProgramToRun = "C:\Program Files\Microsoft Office\Office16\outlook.exe"
Wscript.Sleep(SecondsToDelay * 1000)
Prog = Chr(34) & ProgramToRun & Chr(34)CreateObject("WScript.Shell").Run(Prog)
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
objMail.Display 'To display message
objMail.To = "pelda@gmail.com"
objMail.Subject = "tárgy"
objMail.Send
Set objShell = wscript.CreateObject("wscript.Shell")
objShell.run("shutdown /s /f /t 3")Nem, főleg, ha pl patchelés miatt újraindul a géped nap közben...
-
sztanozs
veterán
-
sztanozs
veterán
Az a baj, hogy ez kb. 16-19 óra között bármikor előfordulhat és ha hamarabb elküldi, akkor "hiába" túlóráztam.

Akkor kiraksz egy outlook ikont a desktopra, amiben egy parancs fájl van, ami akkor fut le, amikor az outlookot bezárod (persze ez vsz nem működik akkor, ha a shutdown zárja le, mert akkor már nem fogja engedni vsz a szkriptet futni). Esetléeg outlookba írhatsz egy on_shutdown szkriptet:
Private Sub Application_Quit()
Dim mail As MailItem
Set mail = Application.CreateItem(olMailItem)
mail.To = "email_to_send_to@server.address"
mail.CC = "email_to_send_cc@server.address"
mail.Subject = "kötelezõ subject"
mail.Send
Set mail = Nothing
End Sub -
sztanozs
veterán
Köszi.
Ehhez sajnos nem vagyok elég képzett, de összeollóztam vmit máshonnan, ami most a bekapcsoláskor működik, ha bedobom a vbs-t az indítópultba.
SecondsToDelay = "0"
ProgramToRun = "C:\Program Files\Microsoft Office\Office16\outlook.exe"
Wscript.Sleep(SecondsToDelay * 1000)
Prog = Chr(34) & ProgramToRun & Chr(34)
CreateObject("WScript.Shell").Run(Prog)
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
objMail.Display 'To display message
objMail.To = "pelda@gmail.com"
objMail.Subject = "tárgy"
objMail.Send
Most kellene elérnem, hogy ismét lefusson mindez, amikor kikapcsolom a gépet. Erre nincs valami ötleted?
scheduled task - beállítva kb akkorra, mielőtt elmész melóból
-
sztanozs
veterán
Üdv!
Szakértők segítsetek pls! Cégnél bevezették, h emailt kell munkába érkezéskor és távozáskor küldeni (üres email, mindig azonos tárgyszöveggel, adott belső mail címre); ez a covidos jelenléti ív lényegében. (Win7, Outlook2016.)
Mivel ezt rendszeresen elfelejtem automatizálni szeretném.
Lehetne valahogy írni egy bat, vagy vbs fajt, ami elvégzi mindezt automatikusan be és kikapcsoláskor?
Milyen irányba induljak el? (google még nem segített, persze biztos rosszul kerestem )
Köszi előre is!
-
sztanozs
veterán
-
sztanozs
veterán
-
sztanozs
veterán
Nagyon szépen köszönöm!

Esetleg még annyit megtennél, hogy leírod a teljes parancsort, mert batch-ben még nagyon kezdő vagyok

3 filet szeretnék átnevezni a következő módon:
régi file01--->mai.txt
régi file02--->holnapi.txt
régi file03--->holnaputani.txt
És az új file nevek, amiket bekér a program futtatáskor:
uj file01---->mai_2019.txt
uj file 02--->holnapi_2019.txt
uj file 03--->holnaputani_2019.txt
Előre is köszönöm!

a régi fájlnevek mindig fixek? mind a 3 új fájlnevet bekérje?
-
sztanozs
veterán
-
sztanozs
veterán
-
sztanozs
veterán
-
sztanozs
veterán
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
üdvrobocopy "c:\valami\" "c:\valami2\" /min:1048576
-
sztanozs
veterán
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 {} {}_resizedViszont 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). 
-
sztanozs
veterán
-
sztanozs
veterán
-
sztanozs
veterán
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?
dir adat_??????????????.txt /O:-N /Bebből a listából kell az első elem
-
sztanozs
veterán
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á?

Ez miért nem megy? [link]
Miért értelmetlen a szerver felől törölni? -
sztanozs
veterán
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.
Csak .NET kell a gépen legyen.
-
sztanozs
veterán
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
-
sztanozs
veterán
sajnos ez ide kevés, mivel teljesen rendszertelenül történik az írás, teszem azt 12ó21p.15mp-kor történik egy módosítás utánna történi 92mp múlva majd 16 múlva majd 104 múlva majd 29 múlva stb stb a megoldás amúgy az lett hogy bele kell nyúlni a merő programba, mivel ez egy komplex célgép millio D I\O amik interlockolva vannak a vezérlő PLC-vel,, a PLC-ről felhasználva az OK jelet 1ms késleltetéssel lesz indítva a csv mentés 1500ms delayyel pedig jön ugyan ezen az I\O- n egy OK2 jel, amíg ez nincs meg tiltva van az újra indítás és a mérés, de mivel ugye ezt a gyártónak kelle megcsinálni, egy kisebb vagyon lesz

Asszem valami ilyen kell neked: [link]
De ha jól rémlik a FileSystemWatcher nem 100%-ban megbízható.
-
sztanozs
veterán
Sziasztok
Még csak ismerkedem a batch programozással, de máris lenne egy megoldandó feladat amit egyenlőre nem tudok eldönteni meg lehetne e oldani.
az oprendszer win7 embedded és adott lenne egy file amit egy program minden futási ciklus után felül ír a friss adatokkal, erről a fileról kellene mentést csinálni, méghozzá úgy hogy amikor változott a file tartalma másolja \ helyezze át egy mappába. Napi 350-400 változásról beszélünk. A nyomonkövethetőség érdekében az volna a kiváló ha valamilyen úton létre lehetne hozni automatikusan mappákat mondjuk az alábbi szisztéma szerint:
2017.01.01_12.04.05 szóval az aktuális dátum és az aktuális win szerinti idő és az éppen aktuális file-t ide pakolja
Szerintetek ez megoldható volna valahogy?
ezt szvsz batch-csel nem csinálod meg, hacsak nem te indítod a programot (minden alkalommal) amikor felülírja. HA egy futó process módosítgatja, akkor valami filerendszer filter driver-t kell csinálnod hozzá (vagy valami alkalmazást, ami folyamatosan szknenneli a fájlt, és ha változott, akkor lemásolja. De a második esetben simán lehet, hogy kimarad egy-két változat, ha gyakrabban változik a fájl, mint ahogy ellenőrzöd.
-
sztanozs
veterán
Sziasztok,
próbálok egy egyszerű apache tomcat stop/start, deploy app scriptet összehozni.
Első lefutásra elmarad az if igaz ág tartalma és létrejön a lock file, majd indul a tomcat.
Második lefutásnál létezik a lock ezért lefut az if statement, viszont az if utáni két sor nem.
Mi a hiba, hogy javítsam?d:
cd "D:\Apache Tomcat 8.0.27\bin\"
if exist lock.lck (
shutdown.bat
del /F lock.lck
timeout 1
)
echo lock >> lock.lck
startup.batBiztos jó a könyvtár?
írass ki az IF előtt egy Errorlevel-t:
echo %ERRORLEVEL%
Hátha nem tud belépni a könyvtárba.Másrészt használhatot a következő formát is:
CD /D D:\Apache Tomcat 8.0.27\bin\
Egyrészt a /D meghajtót is vált, másrészt a CD-nek nem kell macskaköröm a path-hoz.cmd-ket pedig ne magukba, hanem CALL-lal hívd és lehetőleg ellenőrizd az ERRORLEVEL-t utána (hogy sikeresen lefutott-e).
-
sztanozs
veterán
Igen, köszi, ez lesz a megoldás BGInfo ügyben.

Ettől függetlenül érdekelne, hogy batch-el hogyan lehet indítani egy alkalmazást rendszergazdaként? Nem találtam erről infót.
rendszergazdaként?
runas vagy task shceduler - az utóbbi jobb, mert ott nem látszik password -
sztanozs
veterán
Van egy bginfo nevű proggi, ami a háttérképre rátesz különböző paramétereket, gépnév, ip cím, stb., amit szeretne a user. Ez paraméterezhetően indítható, ezzel nincs is gond, rendesen műxik a batch-ben.
A gondom az, hogy így a saját user-em hátterét kicseréli ugyan, ill. ráteszi az infókat, de nekem az kellene, hogy az összes user hátterét kicserélje, aki csak bejelentkezik a gépbe (alluser), tehát minden user-nek legyenek kint az asztalán az infók.
Hogyan tudom indítani a batch-ben a bginfo-t úgy, hogy alluserre legyen hatással, ne csak az én useremre?
Vagy be kell tenni a HKLM Run-ba, vagy az alluser StartUp-ba.
-
sztanozs
veterán
Sziasztok!
Egy kis segítséget szeretnék kérni. Egy batch fájlt szeretnék készíteni amivel időközönként az Outlook adatfájljait átmásolom egy hálózati gép megosztott könyvtárába. De valamiért az Outlook mappájával nem működik. A hálózati meghajtón létrehozza a könyvtárat, de a másolás nem fut le. D:-ről másol.
Tudnátok segíteni, hogy mi lehet a gond. Előre is köszönöm!for /f "tokens=1 delims=. " %%a in ('date /t') do set yyyy=%%a
for /f "tokens=2 delims=. " %%a in ('date /t') do set mm=%%a
for /f "tokens=3 delims=. " %%a in ('date /t') do set dd=%%a
set folderdate=%yyyy%.%mm%.%dd%
net use x: \\NAS\Iroda
md "x:\Gabor\backup\%folderdate%\Outlook\"
xcopy C:\Users\Gábor\AppData\Local\Microsoft\Outlook x:\Gabor\backup\%folderdate%\Outlook\ /e /h /r /y /k /c
net use x: /deleteRáadásul, ha a felhasználó fogja a fájlt (nyitva van az outlook és fel van csatolva a pst), akkor sem biztos, hogy át tudod másolni.
-
sztanozs
veterán
Mármint úgy értetted, hogy írja meg már valaki helyetted?
A leveledből nekem úgy tűnt, hogy te szeretnéd megcsinálni, csak valahol elakadtál:
1) hogy lehet fájlokat másolni
2) hogyan lehet a változókat használni
3) hogy lehet a hónap adott napját váltotzóban megkapniFeltételeztem, hogy az első (esetleg az első kettő) még menne, így csak felhívtam a figyelmed az épp előtted történt beszélgetésre, ami arról szólt, hogy hogyan lehet az aktuális dátumot három változóba (%yy%, %mm%, %dd%) berakni.
-
sztanozs
veterán
Sziasztok!
Most ismerkedek a Bacth programozással, mert kaptam egy feladatot, de kifogott rajtam.
Azt kellene megvalósítani, hogy a srcipt lekérdezze a rendszertől a hó adott napját, és ezzel a nappal hozzon létre egy új könyvtárat, ahova egy megadott helyről másolja be a mappában lévő összes fájlt. Ez minden nap egyszer fusson le (feladatütemező) az adott hónapban, majd a következő hónapban írja felül a régi fájlokat.
(Hogy honnan hova másoljon az a feladat szempontjából lényegtelen.)Tudnátok segíteni?
Köszönöm!
hármat olvass vissza.

-
sztanozs
veterán
Egy visszatérő apróság adódott: dátumok...
Forrás: www.robvanderwoude.com/amb_datetime.php
@echo off
if "%date%A" LSS "A" (set toks=1-3) else (set toks=2-4)
for /f "skip=1 tokens=2-4 delims=(-)" %%a in ('echo:^|date') do (
for /f "tokens=%toks% delims=.-/ " %%d in ('date/t') do (
set %%a=%%d
set %%b=%%e
set %%c=%%f
set toks=
)
)
echo %yy%
echo %mm%
echo %dd%Kimenete minden általam használni kívánt oprendszeren:
2016
04
13Sajnos nem értem, hogyan keletkeznek a változók. Esetleg van aki érti és pár mondtaban kiokosítana?
mod:
Na, megvan, ez csinálja:c:\temp>echo:|date
The current date is: 13/04/2016
Enter the new date: (dd-mm-yy)Ez feldolgozza a második sort (eltárolja a dátum sorrendet), majd a az első sort, abból kiszedi a dátumot.
Ez pedig a változónevekhez adja a dátumot - az a trükk, hogy a változónév is változóból jön:
set %%a=%%d
set %%b=%%e
set %%c=%%fNagyon elmés

-
sztanozs
veterán
Köszönöm! Így már sikerül megcsinálnom a dolgot, parancsosról
for /d %a in ("%appdata%\Mozilla\Firefox\Profiles\*") do if exist "%a\permissions.sqlite" copy C:\x-profit\permissions.sqlite "%a\permissions.sqlite"
de ha .bat fileban póbálom futtatni:
C:\>beall.bat
\Users\test4\AppData\Roaming\Mozilla\Firefox\Profiles\*") do if exist "\configs
\permissions.sqlite most nem használható.C:\>for /d \Users\test4\AppData\Roaming\Mozilla\Firefox\Profiles\*") do if exist
"\configs\permissions.sqlite "a\permissions.sqlite"C:\>
és nem történik meg a másolás

Mi lehet a probléma?
.cmd-ben futtasd
-
sztanozs
veterán
-
sztanozs
veterán
Sziasztok.
Az alábbi miért működik win7-en gond nélkül, és miért nem megy win xp-n?
@echo off
:start
cls
echo 1,2,Q valassz.
CHOICE /C 123 /N
IF ERRORLEVEL 3 GOTO exit
IF ERRORLEVEL 2 GOTO korte
IF ERRORLEVEL 1 GOTO alma
:alma
cls
echo alma
pause
GOTO start
:korte
cls
echo korte
pause
GOTO start
:exit
cls
echo EXIT!
pause
xp-n egyből az :alma-nal köt ki, és nem kér semmilyen interekciót a choice. -
sztanozs
veterán
-
sztanozs
veterán
-
sztanozs
veterán
bocs, benne maradt egy két dolog a tesztelésből, és nem is írtam, mit csinálj vele
1) _rootfolder után kell a tényleges könyvtár, amiben/alatt alatt az sv fájlok vannak
2) a kconvars.exe könyvtárában kell elhelyezni a fájlt .cmd végződéssel (.bat kerülendő) és onnan futtatniSetlocal EnableDelayedExpansion
@ECHO OFF
SET _rootfolder="C:\Temp"
FOR /F %%A IN ('dir %_rootfolder% /s/b^|find "sysframe.sv"') DO (
SET _file=%%A
SET _dir=!_file:~0,-11!
SET _newFile=!_dir!sysframe.va
kconvars !_file! !_newfile!
) -
sztanozs
veterán
Sziasztok,
van több mint 90 könyvtáram elvileg mindegyikben van egy "sysvars.sv" file.
ezt kellene átkonvertálnom.jelenleg úgy müködik a dolog hogy ezt a filét bemásolom egy könyvtárba ahol van egy "kconvars.exe"
majd inditok egy cmd-t ahol elnavigálok az adott könyvtárba és beirom ezt:"kconvars sysvars.sv sysframe.va"
Ha végzett akkor visszamásolom az eredményt az eredeti mappába majd megnyitom a követezö mappát és folytatódik a az egész elöröl.Gondolom egy hozzáértönek nem egy nagy dolog egy olyan programot irni ami végignézi az összes könyvtárat és ha talál egy "sysvars.sv" filét akkor futatja rajta a konvertálót. Tudna valaki nekem segiteni?
Setlocal EnableDelayedExpansion
@ECHO OFF
CD /D "D:\gyoker\konyvtar"
FOR /F %%A IN ('dir /s/b^|find ".txt"') DO (
SET _file=%%A
SET _dir=!_file:~0,-11!
SET _newFile=!_dir!sysframe.va
kconvars !_file! !_newfile!
) -
sztanozs
veterá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?
Asszem ennek mennie kell:
echo n && echo i| chkdsk d: /F -
sztanozs
veterán
-
sztanozs
veterán
Köszi, azzal megoldottam.
Azt viszont nem tudom, lehet-e, hogy ha elindítom a programot, akkor automatikusan kezdje el begépelni a cuccokat.
Vagy azt beleírni egy bat fájlba, hogy indítsa el a programot, majd nyomja meg a CTRL+ALT+A kombinációt.
Ilyet is próbáltam, csak ezzel az a baj, hogy ha elindul a program, akkor az lesz az aktív ablak, és addig nem lép tovább a bat, amíg azt be nem zárom.
Lehet olyat, hogy a programot a háttérbe indítsa, és lépjen tovább a következő parancsra? -
sztanozs
veterán
szeretnék egy script-et, ami végig pörget - mondjuk - egy txt fájlt és megmondja, hogy a bevitt érték megtalálható e az adott txt fájlban:
@echo off
set /p szam=
findstr /c:'%szam%' szamok.txt
if %errorlevel% equ 1 goto hamis
echo igaz
goto kesz
:hamis
echo hamis
goto kesz
:kesz
pausestackoverflow-ról halásztam ezt, nálam valamiért mégsem akar működni....
egyébként a legjobb az volna, ha excel-ből dolgozna, illetve a bevitel is ctrl+c > ctrl+v módon történhetne, ergó grafikus volna...ez viszont gondolom innentől már vbscript
Az Excelből dolgozna-t hogy képzeled el?
vbs-sel:
If UCase( Right( WScript.FullName, 12 ) ) = "\CSCRIPT.EXE" Then
wscript.echo "Please copy the script to the Desktop and drag a file to the script icon"
wscript.quit -1
End If
if WScript.Arguments.Count() <> 1 Then
wscript.echo "Please drag a file to the script icon"
wscript.quit -1
End If
filename = WScript.Arguments(0)
searchstring = InputBox("Search:")
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(filename)
lineno = 1
lines = ""
Do Until f.AtEndOfStream
line = f.ReadLine
If InStr(line, searchstring) > 0 Then
lines = lines & lineno & vbTab & line & vbCrLf
End If
lineno = lineno + 1
Loop
f.Close
If lines <> "" Then
wscript.echo lines
Else
wscript.echo searchstring & " not found"
End If -
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 -
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

-
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 -
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...
-
sztanozs
veterán
-
sztanozs
veterán
Időzített schedule-lel meg lehet oldani vagy folyamatosan futó batch-csel, de méginkább vbscript-tel.
-
sztanozs
veterán
-
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.
-
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ó...
-
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\
) -
sztanozs
veterán
-
sztanozs
veterán
-
sztanozs
veterán
1. echo off csak akkor javasolt, ha tényleg zavarnak a hibaüzenetek. Különben lehet hasznos info a kiírt üzenetekben. Sőt szoktam ilyet beszúrni: echo "origin elindult"
2. Bár W8 batch-csel nincs tapasztalatom, szakirodalom szerint ([link] a TIMEOUT parancs lett kifejlesztve erre Win7 óta. A ping-es alternatíva több helyen előjön.
3. A "D:\Program Files (x86)\Origin\Origin.exe" helyett a
D:\Progra~1\Origin\Origin.exe
formát használnám félreértések helyett (ha a W8 ismeri még 8-karakteres figurát)good luck!
fél-off:
echo off-fal nem a kimemetet nyomod el (ergo nem lesz kimeneted), hanem az echo-zott sorok elé nem írja ki, hogy echo...
-
sztanozs
veterán
akkor ezek szerint mást hívunk autologon-nak

de azt nem értem, elmondásod alapján neked is épp arra lenne szükséged amit írtam.
PC indulásakor ne kérjen jelszót, de ha kijelentkezel, akkor bármilyen userre át tudj jelentkezni:ezt pedig így tudod elérni:
cmd
control userpasswords2
ráállsz arra a userre akivel induljon a gép, felül kiveszed a pipát, nyomsz egy alkalmaz-t, beírod a jelszót restart és kész.Nem kell hozzá semmi registry trükközés és hasonló és független attól, hogy hány helyi usered van a gépen.
Elméletileg a registry hackelés is ugyanezt csinálja - csak közvetlenül írod be két mezőbe a felhasználónevet meg jelszót. Én nem tapasztaltam még, hogy kijelentkezés után újra bejelentkezne, csak újraindulás után...
-
sztanozs
veterán
-
sztanozs
veterán
-
sztanozs
veterán
-
sztanozs
veterán
Közben sikerült megoldanom a problémát, de lett még egy!

Így lehet pl a parancsot újra futtatni (loop):
:start
subst H: E:\Cloud\Skydrive
timeout 3
if exist H:\desktop.ini (exit)
goto start
Viszont a rendszerindításkor csak egyszer futott le. Megnéztem és nem volt a meghajtók között H:, legalábbis a total commanderben. A windows intézőben meg ott figyelt! Szóval eddig is felcsatolta, csak én egyből total commandert indítok, ahol nem jelenik meg. Ez az újabb gondom, hogy miért?
TC-nek kell egy kis idő, mire lefrissíti a felületét. Ha újraindítod, biztos ott lesz - de van olyan is néha, hogy gombként nem jelenik meg, de a legördítő menüben már ott van.
Amúgy nem hálózati mappát próbálsz meg subst-olni így?Storno, most olvasom, hogy nem az... Amúgy a skydrive is lehet a bűnös - lehet, hogy lefoglalja a rendszer a mappa lekérésével és emiatt késik a subst...Ezt találtam még neked - subst helyett registry:
InconstancyHowever restart of a system destroys a virtual disk. What to do? A disk can be created after startup. But what to do, when a disk is needed on early steps of a startup? For example, to run services? There is system feature to start a virtual disk from the system registry:
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"H:"="\\??\\E:\\Cloud\\Skydrive"
It is enough to create a text file with the extension .REG and run it. When the next starting up of a system, the virtual disk will be exist at logon. It needs to define a name of disk and path. Note that each backslash in the path is doubled.
-
sztanozs
veterán
-
sztanozs
veterán
Sziasztok. Eléggé kezdő vagyok a témában és kellene nekem egy kis segítség.
Valaki tudna olyanban segíteni hogy .bat fájlal megnyitok egy mappát így :@echo off
cd /d d:megnyités ebben elkezdek almappákban szaladgálni.
Be lehet-e olyat állítani a .bat fájlban hogyha bezárom az ablakot amit megnyitottam ( vagyis a megnyit mappát ). Akkor lefuttatja ezt a parancsot például:
@echo off
cd /d e:program filesvagyis miután bezártam a megnyit mappát akkor behozza nekem az e meghajtón lévő program files mappát.
Előre is köszönöm

Nekem nem egészen kerek, amit itt leírtál - a cd /d sem nyit meg semmi böngésző-ablakot, amiben "szaladgálni" lehetne - sőt így bezárni sem lehet.
Mit is szeretnél pontosan csinálni?
Megnyitni egy fájl böngészőt, és ha az becsuktad, akkor nyitni egy másikat? -
sztanozs
veterán
Sziasztok!
Segítséget szeretnék kérni, nem tudom jó helyen-e , de remélem....
Egy olyan kis programra lenne szükségem, amit bemásolok a windows adott könyvtárába, és induláskor lefut, megnézi, hogy a benne megadott program aktív-e, vagyis fut-e. Ha nem fut, akkor elindítja.....
Ennyi lenne, nem tudom ez hogyan és miként oldható meg, ha valaki segítene azt már most megköszönöm!
Legalább valami ötlettel merre induljak....vbs + wmi - win32_process
-
sztanozs
veterán
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.Indítsd WScritből (akármi.vbs). Csak ennyi kell bele:
CreateObject("Wscript.Shell").Run "becsfájl.bat",0,True -
sztanozs
veterán
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%Nem próbáltam ki...
-
sztanozs
veterán
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.

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% -
sztanozs
veterán
-
sztanozs
veterán
-
sztanozs
veterán
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).Bár közben találtam egy jó array-es batch megvalósítást...
-
sztanozs
veterán
Ú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 !
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). -
sztanozs
veterán
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
)move elé (a cmd fájl elejére) kell a setlocal - ja és véletlen se .bat-nak nevezd el, hanem .cmd-nek
-
sztanozs
veterán
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 HIBAElőször kell egy
SETLOCAL enabledelayedexpansion
Utána pedig már megy a következő
If !ERRORLEVEL! EQU 0 (
goto OK
) else (
goto HIBA
)
Új hozzászólás Aktív témák
-
Fórumok
Mobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - 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 Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! 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
- Építő/felújító topik
- Milyen NAS-t vegyek?
- Anglia - élmények, tapasztalatok
- Parfüm topik
- Android Auto és Carplay utólag? A Carpodgo Mini kicsi és olcsóbb, mint a nagyok
- Apple Watch
- Apple MacBook
- WoW avagy World of Warcraft -=MMORPG=-
- Milyen processzort vegyek?
- Gaming notebook topik
- 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
- Apple iPhone SE 2020 128 GB Fehér 1 év Garancia Beszámítás Házhozszállítás
- Eladó Apple iPhone Xr 64GB piros / 12 hó jótállás
- Apple iPhone 13 Pro Max 128GB Blue - Szép állapot - 100% akku
- Xiaomi 15T Pro 5G 512GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Dell Precision 5520 FHD notebook - i7 7820HQ 16GB DDR4 256GB SSD M1200 4GB WIN11
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest















