2013-12-17 1 views
9

Ich habe ein anderes kleines Batch-Projekt gestartet, aber ich habe ein kleines Dilemma gefunden. Ich benutze set name= gefolgt von set /p name=, um dem Benutzer zu ermöglichen, die gewünschte Eingabe zu geben. Ich möchte jedoch, dass die mit Leerzeichen eingegebene Variable die Leerzeichen durch Bindestriche ersetzt (z. B. "Hallo Welt" wird "Hallo-Welt").Batch-Datei; Ersetzen Sie die Leerzeichen der Variablen durch Bindestriche

Ich habe gesucht und viele Situationen gefunden, in denen jemand eine ähnliche Frage stellt, jedoch verwenden sie alle den Befehl ren, den ich nicht benutze, weil ich nicht mit Dateien zu tun habe.

Mein aktueller Code ist wie folgt:

@echo off 
Cls 
echo Insert a string with spaces? 
set string= 
set /p string= 

Ich habe auch eine Lösung für das Umbenennen von Dateien, die mit ren "!file!" "!file:_= !" erwähnten einen Dateinamen Leerzeichen in Unterstriche ändern (_). Aber es änderte sich nicht zu set name=!name:-= ! für mich.

Wie kann ich Leerzeichen in meiner Batchdatei am besten durch Bindestriche ersetzen?

Antwort

10

Sie sind in der Nähe.

@echo off 
cls 
echo Insert a string with spaces? 
set string= 
set /p string= 
set string=%string: =-% 
echo String is now %string% 

Einzelheiten zur Variablenmanipulation finden Sie unter set /?.

+0

Danke, funktioniert wie ein Charme. Außerdem sehe ich jetzt, wie das Setzen einer Variable nach dem ':' funktioniert, anstatt auf eine Schätzung zu reagieren. Danke noch einmal! – Destrotant