Пакетный файл; замените пробелы переменной дефисами

Я начал еще один небольшой пакетный проект, однако я столкнулся с некоторой дилеммой. Я использую set name= затем set /p name=, чтобы позволить пользователю, чтобы дать нужный вход. Однако я хочу, чтобы переменная, введенная с пробелами, затем заменила пробелы дефисами (например,"Здравствуй, мир!" становится "Привет-мир").

Я искал вокруг и нашел много ситуаций, в которых кто-то задает подобный вопрос, однако все они с помощью ren команда, которая мне не нужна из-за того, что я не имею дело с файлами.

мой текущий код выглядит следующим образом:

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

Я также нашел решение для переименования файлов, указанных с помощью ren "!file!" "!file:_= !" чтобы изменить пробелы имени файла на подчеркивания (_). Однако изменение его на set name=!name:-= ! у меня не получилось.

как я могу лучше всего заменить пробелы дефисами в моем пакетном файле?

1 ответов


вы близки.

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

посмотреть set /? для деталей на переменной манипуляции.