首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要编辑文本文件。删除start,然后再执行循环

需要编辑文本文件。删除start,然后再执行循环
EN

Stack Overflow用户
提问于 2013-08-05 23:20:37
回答 2查看 137关注 0票数 0

完成新手在这里,让所有的帮助,感谢收到。我希望用批处理文件编辑一个文本文件。

我有一个只有一行的文本文件。我需要删除前240个字符,我需要删除最后82个字符最后,之间的任何东西我需要每个100个字符被一个换行分隔谢谢马克

EN

回答 2

Stack Overflow用户

发布于 2013-08-06 00:07:35

你的问题几乎可以用任何编程语言轻松解决……除Windows批处理外:(

对于Windows批处理,如果文件长度超过8192字节,这几乎是不可能的,因为批处理变量限制为8192个字符。有一个复杂的方法,它使用FC /B一次有效地读取一个字节,表示为十六进制。这将是相对容易的计数。但是,每个十六进制代码都需要转换回字符值。你不想经历所有的痛苦,除了可能的学术兴趣。

您可以使用PowerShell、VBScript或JScript轻松完成您想要的操作。

但是如果你想坚持使用批处理,那么你将需要一个非标准的实用工具来帮助你。

您可以下载一些免费的实用程序,它们会使解决方案变得微不足道。例如,Windows的sed可以很容易地解决这个问题。

该实用程序是纯脚本,可在XP及更高版本的任何Windows计算机上运行-无需下载exe。脚本中嵌入了REPL.BAT is available here.完整文档。

假设REPL.BAT在您的当前目录中,或者更好的是,在您的路径中的某个地方,那么下面的简单批处理脚本应该可以完成此任务。该脚本将要修改的文件的名称作为第一个也是唯一一个参数。文件等级库可以包含路径信息。如果文件包含空格或其他特殊字符,请确保用引号将文件括起来。

代码语言:javascript
运行
复制
@echo off
type %1|repl "^.{240}(.*).{82}$" "$1"|repl ".{100}" "$&\r\n" x >"%~1.mod"
move /y "%~1.mod" %1 >nul
票数 3
EN

Stack Overflow用户

发布于 2013-08-06 01:51:43

如果可能的话,我强烈建议改用PowerShell,或者至少使用VBScript。用这些语言做你想做的事情会容易得多。

PowerShell:

代码语言:javascript
运行
复制
$filename = 'C:\path\to\your.txt'
(Get-Content $filename | Out-String) `
    -replace '^[\s\S]{240}', '' `
    -replace '[\s\S]{82}$','' `
    -replace '([\s\S]{100})',"`$1`r`n" `
  | Set-Content $filename

VBScript:

代码语言:javascript
运行
复制
filename = "C:\path\to\your.txt"

Set fso = CreateObject("Scripting.FileSystemObject")
Set re  = New RegExp
re.Global = True

txt = fso.OpenTextFile(filename).ReadAll

re.Pattern = "^[\s\S]{240}"
txt = re.Replace(txt, "")
re.Pattern = "[\s\S]{82}$"
txt = re.Replace(txt, "")
re.Pattern = "([\s\S]{100})"
txt = re.Replace(txt, "$1" & vbNewLine)

fso.OpenTextFile(filename, 2).Write txt
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18061782

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档