2013-03-27 10 views
13

Ich möchte eine Batch-Datei erstellen, um einige Cmd-Probleme auf meinem Computer zu umgehen, aber dafür muss ich in der Lage sein, String Benutzereingaben zu nehmen und es als Befehl auszuführen.Wie mache ich eine Batch-Datei Zeilen als Befehle ausführen?

Im Grunde, was ich möchte in der Lage sein, einen Befehl zu tun ist, geben Sie, wenn die Batch-Datei für die Eingabe fragt, und den Computer laufen hat, die, ähnlich wie Pythons os-Modul (Klasse?)

Antwort

23

einfach zuweisen des Befehl String einer variablen, dann „ausführen“ die Variable, als ob es ein Programm

war

zB

set myvar=ECHO Hello, World! 
%myvar% 
+0

Was passiert, wenn ich die Ausgabe von% myvar% auf ein umleiten möchten Datei? Ich habe versucht: '% myvar%> myfile.txt', aber es beschwert sich:" Die Syntax des Befehls ist falsch. " – Apteryx

+2

@Apteryx: Einfach das '>' mit einem Caret "flüchten": '^>' Das deaktiviert die besondere Bedeutung des folgenden Zeichens. – Magoo

4

Verwenden der set /p Befehl zur Eingabe aufzufordern. Dieser Befehl zeigt auch eine Nachricht an. Beispiel:

@echo off 
set "command=dir" 
set /p "command=type in a command: " 
echo.command is: %command% 
echo.press any key or ^<CTRL+C^> to abort . . . 
>nul pause 
%command% 
2

In seiner einfachsten Form, möchten Sie set /p verwenden, für den Befehl zu veranlassen, eine Umgebungsvariable zu dem Ergebnis, Einstellung, erweitern Sie dann einfach die Umgebungsvariable von selbst und das Betriebssystem wird versuchen, es als ein auszuführen Befehl.

SET /P COMMAND=Command: 
%COMMAND% 
+1

Endoros Antwort ist "vollständiger", indem er 'echo off' für eine sauberere Ausgabe umschaltet, indem man' set' in Anführungszeichen einfügt, um zu vermeiden, dass einige Zeichen usw. entzogen werden müssen. Aber ich mag minimalistischen Code, um sich nur auf die gestellte Frage zu konzentrieren. Stimme ab oder akzeptiere das von dir bevorzugte Format. :-) –

0

Sie die Batch-for-Schleife verwenden können, das für mich in der Eingabeaufforderung funktioniert, aber nicht die Macht Shell:

Microsoft Windows [Version 6.3.9600] 
(c) 2013 Microsoft Corporation. All rights reserved. 

C:\Users\Administrator>FOR /F "delims=" %i IN ('python -c "print('set wow=yep')"') DO set toexec=%i 

C:\Users\Administrator>set toexec=set wow=yep 

C:\Users\Administrator>%toexec% 

C:\Users\Administrator>echo %wow% 
yep 
Verwandte Themen