2017-11-25 2 views
0

Ich brauche etwas Hilfe bei der Verwendung der CMD. Ich bin ein Amateur-Programmierer, also sei bitte sanft mit technischen Begriffen! Ich denke jedoch, dass das, was ich brauche, für einen Programmierer ziemlich einfach ist!Ersetzen Sie Buchstaben in einem Text mit Symbolen über CMD

Ich entwickle einen einfachen Text kodieren/decodieren Bot (mit WinAutomation Software), die in einem sehr langsamen MS Windows PC laufen wird. Ich benutze meine eigene Kodierung/Dekodierung seit Jahren, so dass ich nicht daran interessiert bin, eine vorgefertigte Lösung zu verwenden. Ich möchte in der Lage sein, jeden beliebigen Buchstaben in einem beliebigen Text (als Variable) durch Symbole zu ersetzen und umgekehrt.

Beispiel: „a“ wird „[?]“
„b“ wird „[*]“
„c“ wird „[/]“

Vice versa

„[?]“ wird „a“
„[*]“ wird „b“
Etc

ich bin derzeit eine Schleife mit den 130 Buchstaben Ersatz zu tun. Die Schleife wird sehr schnell ausgeführt und verursacht eine CPU- und Speicherüberlastung im langsamen PC. Auf der anderen Seite, wenn ich am Ende der Schleife eine Warteaktion abhalte (mindestens 1 Sek.), Werden die Ersetzungen in 130 Sekunden beendet. Das ist Zeitverschwendung!

Ich brauche einen ONE LINE-Code, um die Ersetzungen auf einmal durch CMD zu machen. Ein Programmierer schlug mir das Stück Code unten, dass es scheint zu funktionieren, ist aber nicht eine Zeile

SET _test=12345abcabc 
SET _result=%_test:ab=xy% 
SET _result=%_result:1=2% 

Wie kann ich es in einer Zeile konvertieren? Ich habe versucht & & und || aber ich mache etwas falsch!

Unten habe ich ein Bild von WinAutomation Run Command Window hochgeladen. Sie können es hier sehen https://imgur.com/3hbcCZE.

Vielen Dank

Antwort

0

Dies kann in einer Zeile erfolgen. ENABLEDELAYEDEXPANSION muss festgelegt werden. Der Code vor und nach der ersten (1) Zeile dient nur dazu, sicherzustellen, dass die Variablen auf nichts gesetzt sind und zeigen, dass sie auf nichts gesetzt sind.

C:>type and.bat 
@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 

SET "_test=" 
SET "_result=" 
ECHO _test is %_test%, _result is %_result% 

REM Here is the one (1) line. 

SET "_test=12345abcabc" && SET "_result=!_test:ab=xy!" && SET "_result=!_result:1=2%! 

ECHO _test is %_test%, _result is %_result% 

Hier ist ein Ergebnis aus dem Ausführen des Skripts.

C:>CALL and.bat 
_test is , _result is 
_test is 12345abcabc, _result is 22345xycxyc 
+0

Hallo! Vielen Dank für Ihre Antwort. Es scheint, dass ich etwas falsch mache! Ich habe den CMD-Bildschirm für Sie hochgeladen, um zu sehen! https://imgur.com/wyxJSVX – coreto98

+0

Übrigens verwende ich auch einen Ersatz, der [==] ist. Zum Beispiel c = [==] oder d = ["]. Ich führe das Skript durch eine Fledermaus-Datei und ich bekomme einige Symbole in der Ersetzung. Ich bekomme [Β ©] nur von [©] – coreto98

+0

Bilder können in SO eingefügt werden. Bitte bearbeiten Sie die Frage. – lit

Verwandte Themen