Wie mach ich in Batch Dateien eine Input Abgrage?
Hey Leute, ich möchte eine Batch Datei machen und einen Input anfragen.
Die Datei soll einen Shutdown Befehl nach einer bestimmten Zeit durchführen, ich benutz den Befehl relativ häufig, wenn ich was über Nacht herunterlade und ich bin zu faul den Befehl immer wieder einzugeben.
Code:
echo Nach wie vielen Minuten soll heruntergefahren werden?
x = input()
x = x*60
shutdown -s -t x
Funktionieren tut es nicht. Weiß jemand wie man das richtig programmieren würde?
MfG
2 Antworten
Als Beispiel:
$name = Read-Host 'What is your name?'
echo $name
Hatte ich vor einer Weile auch gesucht... Das echo natürlich jeweils ersetzen...
Ich habe das jetzt so:
title Shutdown
color a (sieht einfach toll aus ^^)
cls
$zeit = Read-Host 'Wie viele Minuten?'
$zeit = $zeit*60
shutdown -s -t $zeit
Leider funktioniert das gar nicht. Ich werde nicht mal abgefragt, sondern es schließt sich direkt wieder.
"set" mit Option "/p" zeigt ein Prompt an und setzt eine Variable auf den eingegebenen Wert.
set /a berechnet etwas (a=Arithmetik).
Variablennamen müssen in Batchdateien von Prozentzeichen eingeschlossen sein, wenn ihr Wert verwendet werden soll. Das gilt allerdings nicht in "set /a"-Anweisungen.
C:\>set /p x=Nach wie vielen Minuten soll heruntergefahren werden?
Nach wie vielen Minuten soll heruntergefahren werden? 60
C:\>echo %x%
60
C:\>set /a y=60*x
3600
C:\>echo %y%
3600
Okay. Soweit funktioniert zwar alles, es wird richtig ausgerechnet und eingesetzt im Shutdown Befehl. Aber der Befehl selbst wird nicht ausgeführt und es ist dabei zu einer Schleife geworden.
Ich werde immer wieder neu gefragt, aber das Programm führt den Shutdown Befehl nicht aus.
Code:
set /p x=Nach wie vielen Minuten soll heruntergefahren werden?
set /a x = x * 60
shutdown -s -t %x%
Das klingt für mich so, als hättest du deine Batchdatei "shutdown.bat" oder "shutdown.cmd" genannt. Windows sucht zuerst im aktuellen Verzeichnis nach einer passend benannten Datei, und weil es dort deine Batchdatei findet, führt es halt die aus und sucht gar nicht weiter nach anderen Dateien.
shutdown.exe liegt im system32-Verzeichnis unterhalb des Windows-Installationsverzeichnisses. Du kannst den Pfad dorthin direkt angeben, oder den Aufruf auf shutdown.exe ändern. Oder du benennst die Batchdatei um.
cmd ist nicht bash ;-)