【问题标题】:Batch Remove Trailing Whitespace in a Text File批量删除文本文件中的尾随空格
【发布时间】:2015-05-27 22:57:05
【问题描述】:

Remove trailing spaces from a file using Windows batch?How to remove trailing and leading whitespace for user-provided input in a batch file? 似乎是类似的问题,但我无法得到任何答案。

我有一个文本文件,例如 C:\Users\%username%\Desktop\sometext.txt,其中包含一长串数字,其中一些带有尾随空格。如何循环并删除每行末尾的空格?我想批量完成这一切。它将在一个文件中,其中包含一些其他批处理命令。

【问题讨论】:

  • 必须是批处理文件吗?你是否将你的“解决方案”部署到很多机器上并且想要最少的依赖?如果不尝试获得更“现代”的东西。我假设您在任何 Windows >= XP 上。对该主机或 windows 脚本主机使用 powershell,它们可以从您现有的批处理中调用。
  • 您能否更具体地说明其他答案中的哪些内容不适合您?

标签: batch-file


【解决方案1】:

很遗憾,您没有向我们展示您文件中的示例,因此我们只能根据您的描述进行假设。

假设您的文件类似于

1
22
3
64

有些行有尾随空格,然后

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
(
FOR /f "usebackq" %%a IN (q30594509.txt) DO (
 SET /a num=%%a
 ECHO(!num!
)
)>u:\newfile.txt

GOTO :EOF

我使用了一个名为q30594509.txt 的文件,其中包含我的测试数据。

产生 u:\newfile.txt

【讨论】:

  • 由于我没有“u”驱动器而删除了“u:\”后,这段代码给了我一个“缺少操作符”的错误。
  • @tyebillion :如果您只是删除了 'u:\',那么这应该已经在您的当前目录中创建了 newfile.txt 文件。如果目标包含空格,您应该能够替换 u:` with any other path to select a different drive/path (but must be "quoted"`)。报告的错误表明重现代码时出现问题。最好复制粘贴,最好使用像editplus这样的编辑器。 Batch 对语法非常敏感。完全删除>u:\newfile.txt 应该向屏幕报告。那将是我的第一个停靠港。
猜你喜欢
  • 1970-01-01
  • 2022-06-15
  • 1970-01-01
  • 1970-01-01
  • 2017-05-31
  • 2012-09-24
  • 1970-01-01
  • 2017-04-30
  • 2016-02-29
相关资源
最近更新 更多