2016-07-09 23 views
2

Ich habe ein Programm zum Codieren von Textzeichenfolgen in Batch erstellt. Jetzt muss ich den ASCII-Code in ein Zeichen umwandeln. In Wirklichkeit muss ich das Gegenteil tun. Ich habe die Zeichen der Strings geteilt und möchte sie in ASCII übersetzen. fand ich einen guten Befehl ASCII konvertiert in char:Return-Zeichen aus ASCII-Code in Windows Batch

cmd /c exit 65 
echo %=exitcodeAscii% 

Aber, wenn ich es in ein für den Zyklus laufen arbeiten sie stoppt. Mit der for-Iteration überprüfe ich, ob der ASCII-Code (der für index) derselbe wie das Zeichen ist.

@echo off 
setlocal enableDelayedExpansion 
set char=A 
for /L %%a in (32,1,126) do (
cmd /c exit %%a 
echo %=exitcodeAscii% 
if %=exitcodeAscii% EQU %char% echo %%a 
) 

Es scheint, dass die cmd nicht funktioniert. Wie kann ich das beheben?

Antwort

1
@echo off 
setlocal enableDelayedExpansion 
set char=A 
for /L %%a in (32,1,126) do (
    cmd /c exit %%a 
    echo !=exitcodeAscii! 
    if "!=exitcodeAscii!" EQU "%char%" echo %%a 
) 

Zwei kleine Änderungen:
a) verzögerte Expansion mit (bereits aktivierten es)
b) qoutes um die if Argumente Syntax errror mit leeren varaibles zu verhindern (vor allem hier den Raum für %%a = 32, die if kann nicht auf eigene)).