好的,基本上,我在纯文本记事本文件中有一个完整的链接列表,每个链接都在一个单独的行上。我想要做的就是在每个链接之前添加一些文本,特别是:127.0.0.1和几个空格。
所以这......
somelink.com
变成这个......
127.0.0.1 somelink.com
到目前为止,您可能已经猜到我正在尝试编辑文本文件的内容,以使其可用作Windows中的HOSTS文件。
所以我想要一些批处理文件代码,可以在.bat文件中执行,它基本上读取一个记事本文本文件,然后在每行的开头添加“127.0.0.1”,上面有文本。我猜这对于那些对MS DOS和批处理文件代码有一定了解的人来说可能是一段非常简单的代码,但是肯定不是我,而且我写过的唯一批处理文件就像现在一样得到了帮助。
感谢您提前获得的任何帮助,我们非常感谢。
答案 0 :(得分:5)
阅读HELP FOR
然后在命令提示符
FOR /F "delims=" %a in (input.txt) do @echo 127.0.0.1 %a >>output.txt
这里有一些解释和一些注意事项,用一些更完整的功能扩展它并将其放在BAT文件中
FOR是迭代输入文本文件行的命令。阅读http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/for.mspx
input.txt
是包含您的域名列表的文本文件,它必须位于当前目录中
output.txt
将是包含前缀为127.0.0.1的域名列表的结果文件,它将在当前目录中创建
如果要创建BAT文件,则需要移动FOR命令并对其进行一点编辑,将%a
循环变量名称更改为%%a
。
然后,您可以将BAT文件放在输入所在的当前目录以及创建输出的位置。
或者,您可以将BAT文件放在其他位置。在这种情况下,您需要以完整路径调用它。
或者您甚至可以将它放在一个特殊的目录中(我有自己的C:\Program Files\CMD
)并将其添加到PATH系统变量中。请参阅www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/path.mspx?mfr=true如何更改当前会话的PATH。在这里ss64.com/nt/path.html您可以找到有关如何使PATH永久更改的一些解释。
此外,您可能想要为BAT文件添加一些灵活性,而不是使用常量input.txt
和output.txt
文件名,将其替换为%1
和{{1表示BAT文件的第一个和第二个命令行参数。
用户可能希望使用其文件名中包含空格的文件。他们可能会使用引号%2
为名称指定它们。在这种情况下,您需要在FOR命令中添加一些咒语"
,以便在用户使用引号时不会破坏。
最后,您需要决定在输出文本文件已存在的情况下该怎么做,您需要考虑防止覆盖。
所以把所有这些部分放在一起,这是一个简短的BAT文件,可以帮助你入门......
usebackq
欢迎来到BAT编程并享受!
答案 1 :(得分:2)
我们走了!
(
Set /p line1=
Set /p line2=
Set /p line3=
Set /p line4=
)<Filename.txt
echo 127.0.0.1 %line1%>Filename.txt
echo 127.0.0.1 %line2%>>Filename.txt
echo 127.0.0.1 %line3%>>Filename.txt
echo 127.0.0.1 %line4%>>Filename.txt
这将读取文本文件的前四行,然后将您的内容和每一行放回到它来自的行中。 玩得开心!
答案 2 :(得分:0)
除了PA。的回答,如果您需要特定数量的空格,您可以将它们放入变量并将其添加到命令中。
SET spaces= # to the left is 10 spaces
FOR /F "delims=" %a in (input.txt) do @echo 127.0.0.1%spaces%%a>>output.txt
所以输出将是
127.0.0.1 somelink.com
Batch-File flavor:
SET spaces= # to the left is 10 spaces
FOR /F "delims=" %%a in (input.txt) do @echo 127.0.0.1%spaces%%%a>>output.txt