Toon posts:

Batch script vraag

Pagina: 1
Acties:

Vraag


  • TOYS
  • Registratie: November 2010
  • Laatst online: 23-03 09:28

TOYS

Zeg ik nie!!

Topicstarter
Hallo Tweakers. Ik ben iemand die net begint met scriptjes en ben een batch script aan het bouwen maar ik loop erg vast. Hopelijk willen jullie me denken.

Even kort wat ik probeer te bereiken:
- Ik heb een getal Variable "nummer" die ik elke keer met 1 wil laten ophogen
- Ik heb een variable %%g waarvan ik de waarde uit een .txt file haal (informatie.txt)
- Ik moet naar een bepaalde folder en een ,exe uit te voeren met daarachter het Variable "nummer"
- Vervolgens heb ik een aantal commados die ik uit voer "echo hier beginnen mijn commandos"

De uitdagingen die ik heb:
Ik wil dit script 5 keer laten loopen maar:
Het scipt moet voor elke %%g het script uitvoeren. (dus in totaal komt elkel lijn uit de text file 5 keer aan bod)
De variable "nummer" moet ten alle tijde doornummer. Dus zowel in de eerste loop als in de opeenvolgende loops.

Ik heb dus voornamelijk hulp nodig met bovenstaande items. Ik zie even niet hoe ik de loop moet bouwen zodat die 5 keer wordt uigevoerd en dat altijd de %numm% opgehoogd wordt met 1 onafhankelijk hoe vaak het script uitgevoerd is.

Script:
@echo off
set /p nummer="Vul het startnummer in"
set file=informatie.txt
for /f "delims=" %%g in (informatie.txt) do (
echo %%g
START "" "C:\Program Files\folder\prog.exe" -%nummer%
set /a nummer+=1
timeout /t 30
taskkill /IM prog.exe /F
)

Hopelijk wil iemand me op weg helpen zodat ik ook de logica snap hoe je zn loop bouwd.

Bij IT-ers gaat alles automatisch, maar niets vanzelf.

Alle reacties


Acties:
  • +5Henk 'm!

  • HKLM_
  • Registratie: Februari 2009
  • Nu online
Tip :Als je net gaat beginnen ga dan niet de antieke bat scriptjes leren maar maak je scriptjes in powershell :)

👩‍🚀 -> Astronauts use Linux because you cant open Windows in space <- 🚀


Acties:
  • +4Henk 'm!

  • burnedhardware
  • Registratie: Januari 2001
  • Laatst online: 24-03 20:16
Je was me voor :) dit doe je in powershell

[Voor 42% gewijzigd door burnedhardware op 21-03-2021 14:01]


  • TOYS
  • Registratie: November 2010
  • Laatst online: 23-03 09:28

TOYS

Zeg ik nie!!

Topicstarter
Dank, ik zal daar naar gaan kijken. Is de syntax heel erg anders? Kunnen jullie een voorzet geven svp?

Bij IT-ers gaat alles automatisch, maar niets vanzelf.


Acties:
  • +1Henk 'm!

  • downtime
  • Registratie: Januari 2000
  • Niet online

downtime

Everybody lies

TOYS schreef op zondag 21 maart 2021 @ 14:12:
Dank, ik zal daar naar gaan kijken. Is de syntax heel erg anders? Kunnen jullie een voorzet geven svp?
Voorzet:

code:
1
2
3
4
5
6
7
8
9
10
$Nr = [Int]( Read-Host -Prompt 'Vul het startnummer in' )
$File = Get-Content -Path 'informatie.txt'

ForEach ($Line in $File) {
    Write-Host $Line
    Start-Process -FilePath 'C:\Program Files\folder\prog.exe' -ArgumentList $Nr
    $Nr = $Nr + 1
    Start-Sleep -Seconds 30
    Get-Process -Name 'prog.exe' | Stop-Process -Force
}

Dit zal zeker fouten bevatten want ik heb het niet getest. Maar daarom heet het ook een voorzet :)

Acties:
  • +1Henk 'm!

  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

downtime schreef op dinsdag 23 maart 2021 @ 16:28:
[...]

Voorzet:

code:
1
2
3
4
5
6
7
8
9
10
$Nr = [Int]( Read-Host -Prompt 'Vul het startnummer in' )
$File = Get-Content -Path 'informatie.txt'

ForEach ($Line in $File) {
    Write-Host $Line
    Start-Process -FilePath 'C:\Program Files\folder\prog.exe' -ArgumentList $Nr
    $Nr = $Nr + 1
    Start-Sleep -Seconds 30
    Get-Process -Name 'prog.exe' | Stop-Process -Force
}

Dit zal zeker fouten bevatten want ik heb het niet getest. Maar daarom heet het ook een voorzet :)
Tja, eerlijk gezegd kun je als je dit soort code aanlevert, beter gewoon ms-dos batch files blijven gebruiken.
Ik bedoel: het advies om powershell te gebruiken is niet omdat het cool of vet is, maar omdat powershell je veel meer mogelijkheden geeft.

Om één voorbeeld te noemen: die "Stop-Process -Force" is een achterlijke constructie. Powershell geeft je bij Start-Process een pid mee en je kunt gewoon queriën of dat process nog runt en afhankelijk daarvan wel of geen actie ondernemen. Het sowieso al de vraag of de verschillende jobs in sequentiële volgorde moeten worden afgehandeld. In een ms-dos batch moet dat wel maar in powershell heb je juist de gelegenheid om gebruik te maken van de multitasking features van je processor

QnJhaGlld2FoaWV3YQ==


  • downtime
  • Registratie: Januari 2000
  • Niet online

downtime

Everybody lies

Brahiewahiewa schreef op dinsdag 23 maart 2021 @ 17:00:
[...]

Tja, eerlijk gezegd kun je als je dit soort code aanlevert, beter gewoon ms-dos batch files blijven gebruiken.
Ik bedoel: het advies om powershell te gebruiken is niet omdat het cool of vet is, maar omdat powershell je veel meer mogelijkheden geeft.
Wat begrijp je niet aan het woord voorzet? Ik heb zijn script zoveel mogelijk 1 op 1 omgezet zodat hij ook begrijpt wat er gebeurt. Natuurlijk kan het mooier. Maar dan moet ik ook eerst beter weten wat de bedoeling is. En zoveel tijd wil ik er niet in steken.

En tijd investeren om batch files te leren gebruiken (dat is niet hetzelfde als batch files blijven gebruiken) is gewoon zonde. Je werkt dan met techniek die al decennia stil staat in plaats van een modern product wat meer kan en steeds beter wordt.

  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

downtime schreef op dinsdag 23 maart 2021 @ 17:10:
[...] En zoveel tijd wil ik er niet in steken...
Tja, bedankt dan voor de tijd die je er wel in gestoken hebt. Maar m.i. heb je de TS hier niet echt mee geholpen maar eerder op een dwaalspoor gebracht

QnJhaGlld2FoaWV3YQ==


  • TOYS
  • Registratie: November 2010
  • Laatst online: 23-03 09:28

TOYS

Zeg ik nie!!

Topicstarter
Hallo mensen, hartelijk bedankt voor de comments. Ik heb de batch file gedeeltelijk werkend gekregen en in een powershell script geheel werkend. Wellicht niet de mooiste opbouw van code, maar wel functioneel voor een hobby project.

Bij IT-ers gaat alles automatisch, maar niets vanzelf.

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee