在文本文件中交换字符串的部分内容

时间:2013-07-02 12:08:49

标签: windows batch-file cmd

有没有办法在普通的.txt文件中传输字符。

我在.txt文件中有很多条目,它们都是这种格式:

  • 1 =示例,
  • 2 =例2,
  • 3 =例3 ......

我需要的是一个批处理文件,用于将“#=”传输到字符串的右侧。所以它看起来像这样:

  • 示例= 1,
  • Example2 = 2 ...

是否可以使用.bat文件?

3 个答案:

答案 0 :(得分:3)

这将处理多个单词,其中包含Example...

@echo off 
for /f "tokens=1,* delims== " %%a in (input.txt) do >>output.txt echo %%b = %%a

答案 1 :(得分:2)

如果你可以使用GNU sed

sed "s/\(\S\+\)\s=\s\(\S\+\)/\2 = \1/" file

答案 2 :(得分:0)

这样的事情应该有效:

@echo off

pushd "C:\some\where"
for /f "tokens=1,2 delims==" %%a in (input.txt) do echo %%b = %%a
popd

或者用它来摆脱空白:

@echo off

setlocal EnableDelayedExpansion

pushd "C:\some\where"
for /f "tokens=1,2 delims==" %%a in (input.txt) do (
  set "key=%%a"
  set "val=%%b"
  echo !val: =! = !key: =!
)
popd

要将输出保存到文件,请调用以下脚本:

switch.cmd >output.txt