batch-file - 用于从文本文件中删除双引号的批处理脚本
问题描述
我从外部源收到一个文本文件,其中包含需要通过批处理脚本删除的连续两个双引号的实例。
例如:“双引号”“示例行。”
脚本完成后应显示:“双引号示例行”。
我尝试了下面的脚本,它确实有效,但是它有一个我无法弄清楚的意外后果。只要一行包含感叹号和冒号,就会删除它们之间的所有内容。
例如:“你好!这条线在 13:49 运行。”
该脚本将此行转换为:“Hello49.”。
有没有人有关于修复意外后果的建议或更好的解决方案来删除连续两个双引号的任何实例?
@echo off
setlocal enableextensions enabledelayedexpansion
( for /f "tokens=*" %%f in (DateFile.txt) do (
set "line=%%f"
set "line=!line:""=!"
echo(!line!
)
) > NewDataFile.txt
endlocal
echo on
解决方案
您只需要在必要时切换延迟扩展。
例子:
@Echo Off
SetLocal EnableExtensions DisableDelayedExpansion
( For /F UseBackQ^ Delims^=^ EOL^= %%G In ("DateFile.txt") Do (
Set "line=%%G"
SetLocal EnableDelayedExpansion
Echo(!line:""=!
EndLocal
)
) 1> "NewDataFile.txt"
推荐阅读
- javascript - Ajax 表单提交不能与 JQuery 鼠标事件(mouseenter 和 mouseleave)一起使用
- reactjs - 如何在酶/玩笑中测试 ComponentWillMount 中的重定向
- java - 使用 RTEditor 时出现 android.view.InflateException
- javascript - Node.js GET 请求期间的“解析错误:标头溢出”
- android - Android Studio 出现问题 - 错误:找不到符号类保留
- r - 每个 ID 超过阈值的连续观察的最大连续值
- css - 角
- javascript - 当用户单击浏览器外的任何位置并使菜单上的切换起作用时如何关闭 div 元素
- javascript - 跺脚不发送从客户端收到的消息
- java - 单击时如何展开/折叠 EditText?