Board logo

标题: [网络连接] [已解决]怎样用批处理备份还原IP配置? [打印本页]

作者: xlybzk    时间: 2011-5-26 17:39     标题: [已解决]怎样用批处理备份还原IP配置?

本帖最后由 xlybzk 于 2011-5-28 09:26 编辑

我想通过批处理备份还原IP配置,编了如下代码
  1. @netsh -c interface ip dump >ip.txt
  2. echo @netsh -f ip.txt >还原.bat
  3. echo @del ip.txt >>还原.bat
  4. echo @del 还原.bat >>还原.bat
  5. @del 备份.bat
复制代码
功能是读取当前ip配置并保存到ip.txt,然后创建还原.bat测试成功,
但是当我企图让备份创建出来的还原.bat也能创建备份.bat时失败了
  1. @netsh -c interface ip dump >ip.txt
  2. echo @netsh -f ip.txt >还原.bat
  3. echo @del ip.txt >>还原.bat
  4. echo echo @netsh -c interface ip dump >ip.txt >备份.bat >>还原.bat
  5. echo echo @netsh -f ip.txt >还原.bat >>备份.bat >>还原.bat
  6. echo echo @del ip.txt >>还原.bat >>备份.bat >>还原.bat
  7. echo echo @del 还原.bat >>还原.bat >>备份.bat >>还原.bat
  8. echo @del 备份.bat >>备份.bat >>还原.bat
  9. echo echo @del 还原.bat >>还原.bat
  10. @del 备份.bat
复制代码
我刚开始接触批处理,这是我胡乱写的,大家不要笑。希望大家指出正确的写法
谢谢2楼提醒,我刚来这里,不熟悉发帖规则。
不好意思,是我没说清楚。我需要不用进行操作的自动化无脑化的批处理
我是要把他放到封装好的操作系统中,通过封装工具在第2次重启时自动运行
备份IP配置并生成还原IP配置批处理
我在第一次重启进入桌面设定好公司给每一台机器分配的IP,
在第二次重启时自动备份IP,然后办公人员用其他未提前封装此批处理的系统盘,也可以自己恢复IP,
并且恢复IP配置后生成备份批处理(因为他用的不是提前封装此批处理的系统盘所以要生成备份批处理供以后用)

感谢batman不厌其烦的勾引,最终让我发现原来实现这个功能只要一行代码就可以了,是我想得太复杂了。谢谢
  1. if not exist ip.txt (netsh -c interface ip dump >ip.txt) else netsh -f ip.txt
复制代码

作者: batman    时间: 2011-5-26 18:18

请先用code标签将代码括起来。。。。

[code]
你的代码
[/(此处的文字和括号都不要是为了让你看到标签)code]
作者: batman    时间: 2011-5-27 09:33

做为一个批不就行了,运行时判断一下:
  1. @echo off
  2. :begin
  3. set "select="&set /p select=请选择(1.备份 2.还原):
  4. if "%select%" neq "1" if "%select%" neq "2" cls&goto begin
  5. cls&goto command%select%
  6. :command1
  7. netsh -c interface ip dump >ip.txt
  8. echo 备份完成
  9. ping /n 3 127.1>nul
  10. goto :eof
  11. :command2
  12. netsh -f ip.txt
  13. echo 完成还原
  14. ping /n 3 127.1>nul
复制代码
ps: echo echo......^>a.bat >>b.bat(要对>转义)
作者: xlybzk    时间: 2011-5-27 10:18

本帖最后由 xlybzk 于 2011-5-27 10:43 编辑

不好意思,是我没说清楚。我需要不用进行操作的自动化无脑化的批处理
我是要把他放到封装好的操作系统中,通过封装工具在第2次重启时自动运行
备份IP配置并生成还原IP配置批处理
我在第一次重启进入桌面设定好公司给每一台机器分配的IP,
在第二次重启时自动备份IP,然后办公人员用其他未提前封装此批处理的系统盘,也可以自己恢复IP,
并且恢复IP配置后生成备份批处理(因为他用的不是提前封装此批处理的系统盘所以要生成备份批处理供以后用)

另外弱弱的说一句,大哥你的批处理我看不懂。我相信你的批处理肯定能用,等我搞明白在发表意见
已更新了,再次道歉。
作者: Batcher    时间: 2011-5-27 10:19

4# xlybzk


请把这些背景描述更新到顶楼
作者: xlybzk    时间: 2011-5-27 11:04

做为一个批不就行了,运行时判断一下:
@echo off
:begin
set "select="&set /p select=请选择(1.备份 2.还原):
if "%select%" neq "1" if "%select%" neq "2" cls&goto begin
cls&goto command%select%
: ...
batman 发表于 2011-5-27 09:33

我知道了,你是做了一个输入值的对比neq,限制只能输入1或2,然后决定go to 到什么位置。
可是ping /n 3 127.1>nul是干什么用的?我所要求的功能貌似用不到ping命令
还有goto :eof,貌似没有用吧,退出批处理不是可以直接exit吗?
作者: batman    时间: 2011-5-27 11:27

本帖最后由 batman 于 2011-5-27 11:37 编辑

如是这样,封装下面这个批就可以了:
  1. @echo off
  2. for /f %%a in (%~fs0) do set "ok=%%a"
  3. if "%ok%" equ "::" goto next
  4. (echo,&echo,:: 自动还原)>>%~fs0
  5. netsh -c interface ip dump >ip.txt
  6. attrib +h +r +a +s ip.txt
  7. goto :eof
  8. :next
  9. attrib -h -s -a -r ip.txt   
  10. netsh -f ip.txt
  11. attrib +h +r +a +s ip.txt
复制代码
ps:同时加上了对ip.txt的保护,以防使用者误删ip.txt
作者: xlybzk    时间: 2011-5-27 12:04

有些命令我还是不太明白,不过我看出来你的思路了
我按你的思路写一个麻烦你给看看
  1. if not exist ip.txt netsh -c interface ip dump >ip.txt
  2. if exist ip.txt netsh -f ip.txt
复制代码
太复杂的我搞不懂,瞎写,勿笑
不过确实可以用
作者: batman    时间: 2011-5-27 12:24

8# xlybzk
如果当前目录下本来就有一个ip.txt怎么办?
ps:你代码中第二个if exist是多余的。。。
作者: xlybzk    时间: 2011-5-27 15:01

你的意思是这样?
  1. if not exist ip.txt (netsh -c interface ip dump >ip.txt) else netsh -f ip.txt
复制代码
如果没有就创建,有就载入?




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2