替换for循环中变量字符串中的空格

时间:2015-08-03 16:04:19

标签: string batch-file

我们假设我的文本文件包含一些字符串,其中包含空格,此外文件中的随机位置还有空行。 使用for命令的解析,当且仅当没有任何字符串包含任何空格时,可以获得该文件的副本。下面说明了我的观点: 使用for /f %%N in (names.txt) do echo %%N 返回John而不是原始字符串--- John Carpenter--因为它们之间有空白。 现在使用设置为tokens = *的选项的相同命令将使它返回此案例中的整个名称以及文件中的所有其他名称,但缺点是您重现原始文件中的所有空行。 现在我的想法是确保原始文件中的所有字符串都没有空格,然后使用for / f命令压缩文本文件。 我的方法是首先使用to / f with tokens = *选项逐个提取原始文件中的所有字符串,并用“_”替换字符串中的间隙。 你如何在for循环中执行此操作? 生成的文本文件将保留其间的空白行,但可以通过在中间结果上使用默认的/ f命令轻松删除它们,该结果现在具有带连字符的名称。

1 个答案:

答案 0 :(得分:0)

@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in (hi.txt) do (
    set word=%%a
    echo !word: =_!
)
pause>nul

这是你想要的吗?