批处理文件; 用连字符替换变量的空格

9 variables replace batch-file

我已经开始了另一个小批量项目,但是我遇到了一个两难的问题.我使用set name=后跟set /p name=,允许用户给出所需的输入.但是,我希望用空格输入的变量然后用连字符替换空格(例如"hello world"变成"hello-world").

我一直在搜索并发现许多情况,其中有人问类似的问题,但他们都使用ren命令,由于不处理文件,我没有用.

我目前的代码如下:

@echo off
Cls
echo Insert a string with spaces?
set string=
set /p string=
Run Code Online (Sandbox Code Playgroud)

我还找到了一个重命名文件的解决方案,用于将ren "!file!" "!file:_= !"文件名的空格更改为下划线(_).然而改变它对set name=!name:-= !我不起作用.

如何在批处理文件中最好用连字符替换空格?

Mar*_*ark 11

你很亲密

@echo off
cls
echo Insert a string with spaces?
set string=
set /p string=
set string=%string: =-%
echo String is now %string%
Run Code Online (Sandbox Code Playgroud)

请参阅set /?变量操作的详细信息.