这会失败还是更好的脚本编写方式?

时间:2014-03-14 19:01:10

标签: batch-file if-statement set

这会使脚本/编码失败或更好吗? (特别关注剧本的第一部分)
我应该使用ELSE语句等吗?任何建议都将不胜感激!

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

1 个答案:

答案 0 :(得分:1)

这就是我这样做的方式:

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%]!

有关批处理文件中阵列管理的更多详细信息,请参阅:this post