webentwicklung-frage-antwort-db.com.de

Wie erstelle ich eine Batchdatei, die Zeichenfolgen als Befehle ausführt

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 als Befehl auszuführen.

Grundsätzlich möchte ich in der Lage sein, einen Befehl einzugeben, wenn die Stapeldatei zur Eingabe auffordert, und der Computer diesen Befehl ausführen soll, ähnlich wie bei pythons os-Modul (Klasse?).

18
pipsqueaker117

Weisen Sie den String einfach einer Variablen zu und "führen" Sie dann die Variable aus, als wäre es ein Programm

z.B 

set  myvar=ECHO Hello, World!
%myvar%
29
Magoo

Verwenden Sie den Befehl set /p, um 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%
6
Endoro

Im einfachsten Fall möchten Sie set /p für die Eingabeaufforderung für den Befehl verwenden, eine Umgebungsvariable auf das Ergebnis setzen und dann die Umgebungsvariable einfach von selbst erweitern und das Betriebssystem versucht, sie als Befehl auszuführen.

SET /P COMMAND=Command:
%COMMAND%
3
Nate Hekman

Sie können die Batch for-Schleife verwenden, dies funktioniert für mich im Befehl Eingabeaufforderung, nicht jedoch die Power-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
0
srossross