String 将文本文件中的每一行缩短59个字符,然后在相应位置添加一个新的较短字符串

String 将文本文件中的每一行缩短59个字符,然后在相应位置添加一个新的较短字符串,string,batch-file,replace,String,Batch File,Replace,对于在记事本中使用find replace可以轻松完成的简单操作,我不明白为什么在命令行中这么难,因为这只是整个过程中的一个步骤,我希望只运行一次。第一部分的输出列出了Web服务器中所有网站的本地路径,如每个本地路径c:/etc。每个网站在重要部分之前都有相同的59个字符 为了使此链接可用,我需要在与旧链接相同的位置添加一个不同的字符串,并使用正确的http://。等,以平衡该行,使其成为一个工作超链接。 最后一步需要将剩下的任何单个“\”转换为“/”。通常只有一个 所有这些都可以在notepa

对于在记事本中使用find replace可以轻松完成的简单操作,我不明白为什么在命令行中这么难,因为这只是整个过程中的一个步骤,我希望只运行一次。第一部分的输出列出了Web服务器中所有网站的本地路径,如每个本地路径c:/etc。每个网站在重要部分之前都有相同的59个字符

为了使此链接可用,我需要在与旧链接相同的位置添加一个不同的字符串,并使用正确的http://。等,以平衡该行,使其成为一个工作超链接。 最后一步需要将剩下的任何单个“\”转换为“/”。通常只有一个

所有这些都可以在notepad++中使用find and replace完成,但需要运行3次才能达到最终结果原始文本文件没有什么特殊之处,没有跳过的行,每个人的布局都相同

同样的59个字符需要被切掉(它甚至可以是数字,而不是比较文本,如果更容易的话,只需缩短59个字符。替换文本字符串始终与添加到每行的文本字符串完全相同。最后用a/替换每个\以使其完全与web兼容,每行上只出现一次

我见过许多查找和替换批处理文件的人,对于这样一个简单的任务来说,这些文件似乎有些过分。 每行向前数五十九个字符,切掉59个字符,并在其位置添加替换文本

然后将行中唯一的反斜杠改为正斜杠,就完成了


有人知道一种更简单更容易的方法吗这使用了一个名为
repl.bat的助手批处理文件-下载自:

repl.bat
放在与批处理文件相同的文件夹中,或放在路径上的文件夹中

只需更改
http://www.domain.com/
到需要在行前面加前缀的位置

type "file.txt" | repl "\\" "/" | repl "^.{59}" "http://www.domain.com/" >"newfile.txt"
这两个\\是故意的,因为它是一个正则表达式。

@ECHO OFF
SETLOCAL
(
对于/f“delims=”%(Q21495128.txt)中的%%a,请执行以下操作(
设置“行=%%a”
调用集“line=%%line:\=/%%”
调用集“行=替换文本%%line:~59%%”
对于/f“令牌=1*delims==”%%x IN('set line'),执行回显%%y
)
)>newfile.txt
后藤:EOF

其中
Q21495128.txt
是我的测试源文件,为我工作。

非常感谢!这非常有效!我试图投票支持你,但由于缺乏“声誉”而无法支持我想,自从我以来宾身份登录以来。更改输入文件名和替换的数据产生了一个完美的输出文件。这肯定是解决方案,将节省我使用记事本++的大量时间。它还有一个额外的优点,即足够通用,可以将其添加到我以前的脚本中。现在我可以单击“开始到完成”。)我用file.txt下载了repl.bat到文件夹中。在语句中键入的文件夹中打开了命令提示符。但结果只是一个空白的newfile.txt。我通读了repl.bat信息,我确信我可以找到一个多功能脚本的其他用途。非常感谢回复和链接。Magoo提供的脚本适用于此规范需要。但由于功能范围广泛,您的贡献肯定会在以后的项目中使用。可能原始文件中的所有“\”、“/”和“:”都会导致问题?Repl.bat肯定会出现在我的脚本工具箱中。谢谢!请重试,并确保行长超过59个字符。(复制/粘贴它以消除任何打字错误)。在这种情况下,它不需要任何\或/来工作。我很高兴您看到了该脚本的有用性,并且作为一个混合jscript,它在大文件上速度非常快,而且非常健壮。因此,用户dbenham编写了它。