这会不会失败或脚本的更好的办法? [英] Will this fail or better way of scripting?

查看:287
本文介绍了这会不会失败或脚本的更好的办法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这会不会失败或更好的脚本的方式/编码以下? (特别是侧重于脚本的第一部分)搜索
我应该使用ELSE语句等等?任何建议将大大AP preciated!

 呼应设置静态IP信息...
IF%POSID%== 11集IP_ADDR = 10.102%DROPZERO%.105
IF%POSID%== 12集IP_ADDR = 10.102%DROPZERO%0.106
IF%POSID%== 13集IP_ADDR = 10.102%DROPZERO%0.107
IF%POSID%== 14集IP_ADDR = 10.102%DROPZERO%0.108
IF%POSID%== 15集IP_ADDR = 10.102%DROPZERO%0.109
IF%POSID%== 21集IP_ADDR = 10.102%DROPZERO%0.110
IF%POSID%== 22集IP_ADDR = 10.102%DROPZERO%0.111
IF%POSID%== 23集IP_ADDR = 10.102%DROPZERO%0.112
IF%POSID%== 24集IP_ADDR = 10.102%DROPZERO%.113
IF%POSID%== 25集IP_ADDR = 10.102%DROPZERO%0.114设置D_Gate = 10.102%DROPZERO%.1
设置Sub_Mask = 255.255.255.0
netsh接口IP地址!adapterName!静态%IP_ADDR%%Sub_Mask%%D_Gate%1> output_net.txt
netsh接口IP的DNS名称=!adapterName!静态10.98.1.26初级>> output_net.txt
netsh接口IP加入DNS名称=!adapterName! 10.98.1.48索引= 2 - ;> output_net.txt


解决方案

这是我会做的方式:

  SETLOCAL EnableDelayedExpansion回声设置静态IP信息...
设置I = 105
对于一个%%(11 12 13 14 15 21 22 23 24 25)做(
   设置posNum [%% A] =!我!
   集/ A I + = 1

设置IP_ADDR = 10.102%DROPZERO%!posNum [%POSID%]!

有关在批处理文件阵列管理的详细信息,请参见:<一href=\"http://stackoverflow.com/questions/10166386/arrays-linked-lists-and-other-data-structures-in-cmd-exe-batch-script/10167990#10167990\">this帖子

Will this fail or better way of scripting/coding the following? (particularly focusing on the first part of the script)
Should I be using ELSE statements etc.? Any recommendations would be greatly appreciated!

echo Setting Static IP Information... 
IF %POSID%==11 set IP_Addr=10.102.%DROPZERO%.105
IF %POSID%==12 set IP_Addr=10.102.%DROPZERO%.106
IF %POSID%==13 set IP_Addr=10.102.%DROPZERO%.107
IF %POSID%==14 set IP_Addr=10.102.%DROPZERO%.108
IF %POSID%==15 set IP_Addr=10.102.%DROPZERO%.109
IF %POSID%==21 set IP_Addr=10.102.%DROPZERO%.110
IF %POSID%==22 set IP_Addr=10.102.%DROPZERO%.111
IF %POSID%==23 set IP_Addr=10.102.%DROPZERO%.112
IF %POSID%==24 set IP_Addr=10.102.%DROPZERO%.113
IF %POSID%==25 set IP_Addr=10.102.%DROPZERO%.114

set D_Gate=10.102.%DROPZERO%.1
set Sub_Mask=255.255.255.0
netsh interface ip set address "!adapterName!" static %IP_Addr% %Sub_Mask% %D_Gate% 1 > output_net.txt
netsh interface ip set dns name="!adapterName!" static 10.98.1.26 primary >> output_net.txt
netsh interface ip add dns name="!adapterName!" 10.98.1.48 index=2 >> output_net.txt

解决方案

This is the way I would do it:

setlocal EnableDelayedExpansion

echo Setting Static IP Information... 
set i=105
for %%a in (11 12 13 14 15  21 22 23 24 25) do (
   set posNum[%%a]=!i!
   set /A i+=1
)
set IP_Addr=10.102.%DROPZERO%.!posNum[%POSID%]!

For further details on array management in Batch files, see: this post

这篇关于这会不会失败或脚本的更好的办法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆