Has*_*him 1 windows-xp file hosts batch-file
好的,基本上,我在一个纯文本记事本文件中有一个完整的链接列表,每个链接在一个单独的行上.我想要做的就是在每个链接之前添加一些文本,特别是:127.0.0.1和几个空格.
所以这...
somelink.com
Run Code Online (Sandbox Code Playgroud)
成为这个......
127.0.0.1 somelink.com
Run Code Online (Sandbox Code Playgroud)
到目前为止,您可能已经猜到我正在尝试编辑文本文件的内容,以使其可用作Windows中的HOSTS文件.
所以我想要一些批处理文件代码,在.bat文件中可执行,它基本上读取一个记事本文本文件,然后在每行的开头添加"127.0.0.1",上面有文本.我猜这对于那些对MS DOS和批处理文件代码有一定了解的人来说可能是一段非常简单的代码,但是肯定不是我,而且我写过的唯一批处理文件就像现在一样得到了帮助.
感谢您提前提供的所有帮助,非常感谢.
读取HELP FOR然后在命令提示符下尝试此操作
FOR /F "delims=" %a in (input.txt) do @echo 127.0.0.1 %a >>output.txt
Run Code Online (Sandbox Code Playgroud)
这里有一些解释和一些注意事项,用一些更完整的功能扩展它并将其放在BAT文件中
FOR是迭代输入文本文件行的命令.阅读http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/for.mspx上的 microsoft文档
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,并%2代表你的BAT文件的第一和第二个命令行参数.
然后,用户可能希望使用其文件名中包含空格的文件.他们可能会使用引号指定名称周围的名称".在这种情况下,您需要usebackq在FOR命令中添加一些咒语,以便在用户使用引号时不破坏破坏.
最后,您需要决定在输出文本文件已存在的情况下该怎么做,您需要考虑防止覆盖.
所以把所有这些部分放在一起,这是一个简短的BAT文件,让你开始......
@echo off
if .%2==. goto help
if not exist %1 goto helpno1
if exist %2 goto helpalready2
FOR /F "usebackq delims=" %%a in (%1) do @echo 127.0.0.1 %%a >>%2
goto :eof
:help
echo you need to specify input and output text files
goto :eof
:helpno1
echo %1 not found
goto :eof
:helpalready2
echo %2 already exist
goto :eof
Run Code Online (Sandbox Code Playgroud)
欢迎来到BAT编程并享受!