我正在尝试编写一个批处理文件,它将查看小文本文件中的每个字符(实际上是CUE表)并执行三项操作 - 删除所有问号,用连字符替换任何斜杠标记并用两个替换冒号连字符 - 如下例中的第二行所示 .
TRACK 01 AUDIO
TITLE "Colon: Slash / Question Mark?"
(would be changed to)
TITLE "Colon -- Slash - Question Mark"
我知道如何使用findstr将包含这些字符的行复制到新的文本文件(但只包括那些行),而不是如何进行搜索和替换 . 而且,findstr也有删除前导空格的不必要后果,我希望保留这些空间 . 不确定这里的方法是什么 . (我应该补充一点,出于各种原因,我不想使用第三方实用程序 . )
2 回答
您需要更改
sourcedir
和destdir
的设置以适合您的具体情况 .我使用了一个名为
q42482508.txt
的文件,其中包含我的测试数据 .生成定义为%outfile%的文件
调用延迟扩展以允许在代码块中操纵字符串 .
读取文件的每一行到
%%a
那么line
;将?
替换为空,/
替换为-
,将:
替换为2,结果为echo
.括号
for
允许重定向到指定的文件 .模式设置为“var1 =!var2:stringtoreplace = replacementstring!”据记载,
!
代替%
使用delayedexpansion .请注意,您的文本将
:
的replacemnt字符串指定为--
,而您的示例显示它被替换为“Space--”You can use Powershell to solve this very easily.
打开PowerShell并输入
基本上,
Get-Content 将打开该文件 .
.Replace 替换文字(旧文字,新文字)
| Set-Content <path>在diffrent文件上输出 .
Screenshots