从 Windows 批处理文件替换文本文件中的字符

2023-12-14

我正在尝试编写一个批处理文件,它将查看一个小文本文件(实际上是一个 CUE 表)中的每个字符,并执行三件事——删除所有问号,用连字符替换任何斜杠,并用两个冒号替换冒号连字符——如下例中的第二行。

  TRACK 01 AUDIO
    TITLE "Colon:  Slash / Question Mark?"
(would be changed to)
    TITLE "Colon -- Slash - Question Mark"

我知道如何使用 findstr 将包含这些字符的行复制到新的文本文件(但仅限这些行),而不知道如何进行搜索和替换。而且 findstr 也有删除前导空格的不良后果,我希望保留它。不确定这里的正确方法是什么。 (我应该补充一点,由于各种原因,我不想使用第三方实用程序。)


@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION 
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
SET "filename1=%sourcedir%\q42482508.txt"
SET "outfile=%destdir%\outfile.txt"
(
FOR /f "usebackqdelims=" %%a IN ("%filename1%") DO (
 SET "line=%%a"
 SET "line=!line:?=!"
 SET "line=!line:/=-!"
 SET "line=!line::=--!"
 ECHO !line!
)
)>"%outfile%"

GOTO :EOF

您需要更改以下设置sourcedir and destdir以适合您的情况。

我使用了一个名为q42482508.txt包含您的数据供我测试。

生成定义为 %outfile% 的文件

调用延迟扩展以允许在代码块中操作字符串。

读取文件的每一行%%a thence line;替换每个? with nothing, /与一个- and :有两个,并且echo结果。

加上括号for允许重定向到指定的文件。

模式设置为“var1=!var2:替换字符串=替换字符串!” 据记载,!代替%使用延迟扩展。

Note that your text specifies the replacemnt string for : as -- whereas your example shows it being replaced by "Space--"

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Windows 批处理文件替换文本文件中的字符 的相关文章

  • Docker For Windows CE:Kubernetes:无法连接到服务器 eof

    我根本找不到 无法连接到服务器 eof 的解决方案 希望我们能解决这个问题 并在将来搜索解决此问题时对某人有所帮助 我试图在屏幕截图中包含所有信息 如果需要更多信息 请告诉我 我已尝试添加所需的信息 如果您还需要或希望我尝试其他内容 请告诉
  • Windows 上的 OpenGL SDK

    我正在尝试编写一个 OpenGL 应用程序 因此我安装了 Windows 7 SDK 然而 它似乎是OpenGL 1 1 define GL VERSION 1 1 1 如何找到我安装的 OpenGL 版本 dll 以及在哪里可以找到较新的
  • “您的 APP_BUILD_SCRIPT 指向未知文件:./jni/Android.mk”

    我搜索了整个网络 我认为 不管它说了什么 我尝试过 但仍然没有运气 不工作 我在cygwin和windows下都测试了它这是我的项目文件 目录 D Java 2 workspace indigo JniTest classpath D Ja
  • 在批处理文件中添加 +1 到日期

    我有一个批处理文件 可以很好地创建今天的日期 现在我需要更新它以显示明天的日期 任何帮助深表感谢 echo off set TimeStamp 12 00 00 FOR F TOKENS 1 DELIMS A IN DATE T DO SE
  • 为什么安装 Ruby on Rails 会生成错误“数组‘ruby_check_sizeof_voidp’的大小为负数”?

    安装 Ruby on Rails 时 通过gem install rails 您可能会收到以下错误消息 c Ruby193 include ruby 1 9 1 ruby ruby h 109 14 error size of array
  • 隐藏 AppBar 中的省略号

    当您在 UWP 应用中创建 AppBar 或 CommandBar 时 控件侧面附近总会隐藏一个省略号 如下所示 我不想在我的应用程序中使用它 但我没有在其中找到任何方法 属性AppBar这会帮助我摆脱它 这应该是可能的 因为许多默认的 W
  • 如何显示数字键盘

    我阅读了其他几篇文章并使用 input setInputType TYPE NUMBER FLAG DECIMAL 确实打开了键盘 但不是数字键盘 这有什么技巧吗 give android inputType number 在你的 xml
  • 从 C# 调用 MsiEnumRelatedProducts 崩溃

    我在从 C 调用 MsiEnumRelatedProducts 时遇到了无穷无尽的麻烦 我尝试了 p invoke 定义的几种变体 但没有成功 out 和 ref 我认为问题在于最后一个参数 它是一个 LPTSTR 应该指向一个 39 个字
  • c# 简单 WMI 查询中的“无效类”

    我想在此查询后找到一些结果 但在 foreach 循环开始时 出现错误 无效类 string wmiQuery string Format SELECT FROM Win32 Process var searcher new Managem
  • 用 C++/Qt 编写的程序中的 RTF / doc / docx 文本提取

    我正在写一些程序Qt https en wikipedia org wiki Qt 28software 29 C 我需要从中读取文本微软Word https en wikipedia org wiki Microsoft Word RTF
  • Unix 到 Windows:替代 vsnprintf 来确定长度?

    我目前正在将 Linux 库之一的代码转换为 Windows DLL 在这个库中 我有一个函数 它以 printf 方式获取最后一个参数 格式字符串 然后省略号 在此函数中 我使用 vsnprintf 来格式化提供的参数 因为我想知道是否可
  • 如何获取内核转储中Section对象的内容

    来自 3thParty 供应商的节对象被命名为rpsPdf10 mutex它的预期用途是通过向信号量写入布尔标志来模拟信号量 使用 LiveKd 并在 SO 的大量帮助下 我发出了以下命令试图获取此部分对象的详细信息 0 kd gt pro
  • Visual C++ MFC 中窗口启动时的事件顺序

    假设我有一个从 CWnd 派生的类 它具有事件处理函数OnPaint OnCreate and OnSize 如您所知 所有这些都是在窗口启动时发生的 但我想看看它们之间的顺序是什么 例如 当我在其中一个中设置断点时 在结束函数后 控制不会
  • Windows 10:如何防止切换或关闭应用程序

    我正在为 Windows 10 设备开发一个应用程序 该设备将在公共场所暴露给用户 并且其硬件按钮将无法访问 如何防止用户使用触摸屏手势关闭我的应用程序 使用分配的访问权限设置您的应用程序 http www winbeta org news
  • Pip 损坏,给出 PermissionError: [WinError 32]

    我安装了python certifi win32模块 我太忙于解决这个问题 以至于我什至不记得我最初安装它的原因 不过 在安装之后 当我运行 pip 时 我开始收到此错误 下面是扩展错误代码 PermissionError WinError
  • UIButton 中的文本下划线

    谁能建议如何在 UIButton 的标题下划线 我有一个自定义类型的 UIButton 我希望标题带有下划线 但 Interface Builder 没有提供任何选项来执行此操作 在 Interface Builder 中 当您为按钮选择字
  • 编译 Windows 内核模式驱动程序 x64 时出现链接器错误

    我正在尝试编译此处找到的 sysvad 音频驱动程序示例 https github com Microsoft Windows driver samples tree master audio sysvad https github com
  • 批处理文件搜索与本地文件同名的文件夹并将所述文件移动到找到的文件夹不起作用

    因此 我尝试创建一个批处理文件 该文件将在与批处理文件相同的目录中获取 pdf 文件并输出文件名 无扩展名 我使用这段代码来完成此任务 echo off for r C Users me Test Folder G in pdf do se
  • CMD shell 中的可用空间

    有没有办法在 CMD 中获取磁盘或文件夹的可用磁盘空间量 无需安装一些第三方应用程序 我有一个 CMD 可以将一个大文件复制到给定目录 当然可以使用 复制命令返回错误级别 但我必须等待时间 需要复制文件 例如 然后磁盘已满并且复制操作失败
  • 为什么 Windows 只允许一个应用程序访问网络摄像头? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我一直在尝试用 C 制作一个示例网络摄像头应用程序 我发现该应用程序无法同时运行 Skype 或 Oovoo 或任何其他应用程序运行 反之亦然 为什么

随机推荐

  • 如何检查 IOException 是否为 Not-Enough-Disk-Space-Exception 类型?

    我怎样才能检查是否IOException是 磁盘空间不足 异常类型吗 目前 我检查该消息是否与 磁盘空间不足 之类的内容匹配 但我知道如果操作系统语言不是英语 这将不起作用 您需要检查HResult并测试ERROR DISK FULL 0x
  • 无需轮询即可订阅 MySQL 数据库中的更改

    我有一个由不同应用程序更新的 MySQL 数据库 我想从我的 Node js 服务器订阅该数据库的更改 是否可以监视数据库的任何更新 而无需长时间轮询所有行 列以了解其值的任何更改 我见过的一种可能的解决方案是使用 Redis 订阅数据库以
  • 如何安装边缘导轨?

    如何安装最新的 未发布的 Rails 版本 即边缘导轨 已遵循一些建议 但似乎仍然有版本 2 3 5 你所要做的就是跑rake rails freeze edge在你的项目中 如果您还没有开始项目 另一个选择是 mkdir p foo ve
  • 如何在数据框的每一行上执行函数,并仅将输出的一个元素作为新列插入到该行中

    对两个值进行精确二项式测试很容易 但如果想对一大堆成功次数和试验次数进行测试会发生什么 我创建了一个包含测试敏感性 研究中潜在参与者数量的数据框 然后对于每一行 我计算了成功的可能性 这是代码 sens lt seq from 1 to 5
  • Git - 从 SHA1 查找文件名

    我将一个文件添加到索引中 git add somefile txt 然后我通过以下方式获取了该文件的 SHA1 git hash object somefile txt 我现在有一个 SHA1 我想使用 SHA1 检索索引中对象的文件名 g
  • 当程序状态不断变化时,不可变对象的用处

    我知道不可变对象始终具有相同的状态 即它们实际创建时的状态 它们的不变量是由构造函数建立的 并且由于它们的状态在构造后不会改变 因此这些不变量总是保持良好状态 这就是为什么它们可以安全地在多线程环境中发布 这一切都很好 但是由于我们生活在一
  • 从 .NET 程序与 ffmpeg 交互 - 写入输入

    在参照this问题 正如您所看到的 我设法运行该程序并从该程序接收数据 然而 我没有设法向它提交数据 例如 在转换文件时 按q立即停止转换并停止程序 我需要我的应用程序也支持停止该过程 我认为这应该通过将此参数传递给 ffmpeg 应用程序
  • 在 PrimeNG 中单击多选下拉列表内的字段时禁用多选下拉列表关闭

    我正在处理一个使用 PrimeNG 多重选择的需求 该多选有复选框 后面跟着一些文本和徽标 单击徽标后 我将在弹出窗口中显示一些数据 单击弹出窗口的 确定 按钮时 背景多选将关闭 其中我需要禁用单击徽标时关闭弹出窗口 这里是 stackbl
  • 将通用应用程序作为缩放的 iPhone 应用程序运行?

    我已经看到了大量有关将 iPhone 和 iPad 应用程序合并为通用应用程序的问题和答案 但这不是我想要做的 我要做的是在应用程序购买中使用来解锁 iPad 界面 然后使用条件显示正确的界面 如果购买了该界面 应用程序将显示 iPad 笔
  • Firefox 中的 window.onbeforeunload 支持

    我在 JavaScript 中使用 window onbeforeunload 这在 IE 中完美运行 但在 Firefox 中不会触发 我检查了 stackoverflow 中的不同链接 在其中我读到 firefox 不支持 window
  • 强制对声明进行函数评估

    我有一个函数f x y z Limit g x eps y z eps gt 0 我绘制f x y z 在下一步中 早些时候 我曾经评估极限并复制定义中的表达式f 我试图一步完成这一切 然而 只有当我尝试绘制时 才会对极限进行评估f 因此
  • 将 jQuery流沙与 fancybox 结合使用时出现问题

    我正在使用流沙 jQuery 的这个例子 制作精美的 HTML5 作品集 现在 我想在单击图像时打开灯箱 为此 我使用 fancybox jQuery 但问题在于这个 Making a Beautiful HTML5 Portfolio q
  • 由外键控制的值

    我在 SQL Server 中有一个非常简单的数据库 包含以下三个表 Theater ID is3D 其他值 Show ID Theater ID Movie ID date time 其他值 Movie ID is3D 其他值 我想确保3
  • Java-分割字母数字字符串

    输入示例 RC23 CC23QQ21HD32 BPOASDf91A5HH123 输出示例 RC 23 CC 23 QQ 21 HD 32 BPOASDf 91 A 5 HH 123 字母部分和数字部分的长度不固定 我知道如何将 split
  • 带有局部变量的 Mockito

    我有一个简单的方法 返回一个String 它还创建了一个本地List 我想测试一下给本地带来的附加值List 这是一个例子 package com impl import java util ArrayList import java ut
  • Android:setSelection 对 Spinner 没有影响

    我在 Spinner 上使用 setSelection 时遇到一些问题 我将值设置为在代码中显示微调器时预先选择 但它没有任何效果 并且始终选择列表中的第一个替代项 代码如下所示 LayoutInflater li LayoutInflat
  • 在 Flash 中,当 e4x 语句存储在字符串中时,我将如何运行该语句?

    所以我有这样的事情 var xmlStatement String xmlObject node 3 thisValue 我必须使用什么神秘函数才能执行 xmlStatement 并从该 xmlObject 获取 thisValue 喜欢
  • 统计 Android 中的应用程序使用情况

    谁能帮我确定如何计算应用程序在 Android 中的使用次数 写入 SharedPreference onCreate 这不会是一个非常准确的计数 因为 onCreate 有时会被调用 而不仅仅是应用程序启动 但它会是一个相当不错的数字 如
  • 需要将具有相同ID的多行数据转换为1行多列数据

    我回顾了已经解决的问题的版本 但是我发现的一些好的技巧 例如 在 分区 上使用rank 似乎不适用于我所在的Sybase版本 我希望运行一个程序来提取按如下方式组织的数据 电子邮件 偏爱电子邮件1 偏好XYZ电子邮件1 偏好ABC 并将其呈
  • 从 Windows 批处理文件替换文本文件中的字符

    我正在尝试编写一个批处理文件 它将查看一个小文本文件 实际上是一个 CUE 表 中的每个字符 并执行三件事 删除所有问号 用连字符替换任何斜杠 并用两个冒号替换冒号连字符 如下例中的第二行 TRACK 01 AUDIO TITLE Colo