|
lfzzj
初级用户
 
积分 159
发帖 56
注册 2006-9-15
状态 离线
|
『楼 主』:
[求助]这个关于xml文本的操作怎么用脚本实现
我想对iis的配置文件进行操作,比如文本内某一些内容如下,这是2个站点test1.com test2.com,同属于一个进程池AppPool #10,我想用一个脚本将下面的2个站点重新分配下,使每一个站点对应一个进程池,比如使站点test1.com划为进程池test1.com #10;把站点test2.om划为进程池test2.com #10
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~begin
<IIsWebServer Location ="/LM/W3SVC/1692685952"
AuthFlags="0"
ServerAutoStart="TRUE"
ServerBindings=":80:test1.com"
ServerComment="test1.com"
>
</IIsWebServer>
<IIsFilters Location ="/LM/W3SVC/1692685952/filters"
>
</IIsFilters>
<IIsWebVirtualDir Location ="/LM/W3SVC/1692685952/root"
AccessFlags="AccessRead"
AppFriendlyName="默认应用程序"
AppIsolated="2"
AppPoolId="AppPool #10"
AppRoot="/LM/W3SVC/1692685952/Root"
>
</IIsWebVirtualDir>
<IIsWebServer Location ="/LM/W3SVC/1796746353"
AuthFlags="0"
ServerAutoStart="TRUE"
ServerBindings=":80:test2.com"
ServerComment="test2.com"
>
</IIsWebServer>
<IIsFilters Location ="/LM/W3SVC/1796746353/filters"
>
</IIsFilters>
<IIsWebVirtualDir Location ="/LM/W3SVC/1796746353/root"
AccessFlags="AccessRead"
AppFriendlyName="默认应用程序"
AppIsolated="2"
AppPoolId="AppPool #10"
AppRoot="/LM/W3SVC/1796746353/Root"
AuthFlags="AuthAnonymous | AuthNTLM"
DirBrowseFlags="DirBrowseShowDate | DirBrowseShowTime | DirBrowseShowSize | DirBrowseShowExtension | DirBrowseShowLongDate |
EnableDefaultDoc"
Path="E:\dbbackup"
>
</IIsWebVirtualDir>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~end
实现后的结果如下
<IIsWebServer Location ="/LM/W3SVC/1692685952"
AuthFlags="0"
ServerAutoStart="TRUE"
ServerBindings=":80:test1.com"
ServerComment="test1.com"
>
</IIsWebServer>
<IIsFilters Location ="/LM/W3SVC/1692685952/filters"
>
</IIsFilters>
<IIsWebVirtualDir Location ="/LM/W3SVC/1692685952/root"
AccessFlags="AccessRead"
AppFriendlyName="默认应用程序"
AppIsolated="2"
AppPoolId="test1.com #10"
AppRoot="/LM/W3SVC/1692685952/Root"
>
</IIsWebVirtualDir>
<IIsWebServer Location ="/LM/W3SVC/1796746353"
AuthFlags="0"
ServerAutoStart="TRUE"
ServerBindings=":80:test2.com"
ServerComment="test2.com"
>
</IIsWebServer>
<IIsFilters Location ="/LM/W3SVC/1796746353/filters"
>
</IIsFilters>
<IIsWebVirtualDir Location ="/LM/W3SVC/1796746353/root"
AccessFlags="AccessRead"
AppFriendlyName="默认应用程序"
AppIsolated="2"
AppPoolId="test2.com #10"
AppRoot="/LM/W3SVC/1796746353/Root"
AuthFlags="AuthAnonymous | AuthNTLM"
DirBrowseFlags="DirBrowseShowDate | DirBrowseShowTime | DirBrowseShowSize | DirBrowseShowExtension | DirBrowseShowLongDate |
EnableDefaultDoc"
Path="E:\dbbackup"
>
</IIsWebVirtualDir>
[ Last edited by lfzzj on 2008-7-25 at 11:43 AM ]
|
|
2008-7-24 16:12 |
|
|
lfzzj
初级用户
 
积分 159
发帖 56
注册 2006-9-15
状态 离线
|
『第
2 楼』:
其实主要是我不知道怎么把同属AppPool #10的2个或者多个站点名都提出来,比如提出名称 test1.com和test2.com等。
然后还不知道怎么能替换AppPool #10为test1.com #10以及test2.com #10等
|
|
2008-7-24 16:55 |
|
|
bat-zw
金牌会员
      永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
3 楼』:
如下:
@echo off&setlocal enabledelayedexpansion
for /f "tokens=2 delims=:" %%i in ('findstr /n .* iis.ini') do (
set "str=%%i"
if "!str:ServerComment=!" neq "%%i" call :lp
if not defined flag (
set "flag=a"&echo %%i>iis.ini
) else (
if "!str:PoolId=!" neq "%%i" (
echo AppPool="!var! ^#10">>iis.ini
) else (
echo.%%i>>iis.ini
)))
start iis.ini&goto :eof
:lp
for /f "tokens=2 delims==" %%i in ("%str%") do set "var=%%~i" [ Last edited by bat-zw on 2008-7-24 at 06:32 PM ]
|

批处理之家新域名:www.bathome.net |
|
2008-7-24 18:25 |
|
|
lfzzj
初级用户
 
积分 159
发帖 56
注册 2006-9-15
状态 离线
|
『第
4 楼』:
很感谢bat-zw。请你再看下
我之前提出的问题不够完整,现在我从新整理了一份:
a.txt 文件 为我从实际文件中提取的一部分内容
b.txt文件 为我想实现的结果
a.txt内容如下:
<?xml version ="1.0"?>
<configuration xmlns="urn:microsoft-catalog:XML_Metabase_V64_0">
<MBProperty>
<IIS_Global Location ="."
BINSchemaTimeStamp="251a765c4d99c801"
ChangeNumber="32763"
HistoryMajorVersionNumber="287"
SessionKey="49634b62980000004c00000040000000010200000168000000a40000562eac418683ad5dbacdcc0d5597e0a196c4f05c2179a088555682bd980277c5eb1d7c9f4549930d09dd3f466
a63942bc764e88a8ee577f36571d23de94d239effff4e005a3f7fc4d3657f011ae03ac72b2f03416fbe9bff88920d14a4bb87df4c69f1369c9408767988169fdc5a8ce267ee56b80dd96c8338ed52
cc326cd8e7dd7ec59c"
XMLSchemaTimeStamp="7f7c785c4d99c801"
>
</IIS_Global>
~~~~~~~~~~~~~~~~~~站点test1.com~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<IIsWebServer Location ="/LM/W3SVC/1692685952"
AuthFlags="0"
ServerAutoStart="TRUE"
ServerBindings=":80:test1.com"
ServerComment="test1.com"
>
</IIsWebServer>
<IIsFilters Location ="/LM/W3SVC/1692685952/filters"
AdminACL="49634462f0000000a400000040000000c18618ef8781fc29d0feeb5cc6685376b01fc41fe08d8245f4f702bfbd9f7ae1f74429e9e507f6f5729ef4a3e634126cb486569210f10310c4c
a0b701d02120f72f3a72e5339c7a367273ce8b4fdc590417c3457c795c314f6ff9669ad8de29f6957debdf4551e7f01a5a000972deea05104d5c284b1e47d057d04fd8de14c8e817460be132da8d7
674a6b10dd788033c8347c98faa64c9fdf844fa581210c615790dc15e48328f89b00f269c098ace7ccebaa144d961451ca649afa782301085ffc374c71c4205fa8f1420f673bf7ce4eae3a16758a7
f1db3ea1cc322266185ed75916cce3d9112"
>
</IIsFilters>
<IIsWebVirtualDir Location ="/LM/W3SVC/1692685952/root"
AccessFlags="AccessRead"
AppFriendlyName="默认应用程序"
AppIsolated="2"
AppPoolId="AppPool #10"
AppRoot="/LM/W3SVC/1692685952/Root"
AuthFlags="AuthAnonymous | AuthNTLM"
DirBrowseFlags="DirBrowseShowDate | DirBrowseShowTime | DirBrowseShowSize | DirBrowseShowExtension | DirBrowseShowLongDate |
EnableDefaultDoc"
Path="F:\perl"
UNCPassword="49634462500000000600000040000000c18618ef86813600e050d39feb134cf3024228de33bd68f2be421a4acacb679900d66487abbb6bf4023b221cb811d48ca890d75d9a5d26fa
271b0d2978ed22733177004f7d762e76"
>
</IIsWebVirtualDir>
~~~~~~~~~~~~~~~~~~站点test2.com~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<IIsWebServer Location ="/LM/W3SVC/1796746353"
AuthFlags="0"
ServerAutoStart="TRUE"
ServerBindings=":80:test2.com"
ServerComment="test2.com"
>
</IIsWebServer>
<IIsFilters Location ="/LM/W3SVC/1796746353/filters"
AdminACL="49634462f0000000a400000040000000c18618ef8781fc29d0feeb5cc6685376b01fc41fe08d8245f4f702bfbd9f7ae1f74429e9e507f6f5729ef4a3e634126cb486569210f10310c4c
a0b701d02120f72f3a72e5339c7a367273ce8b4fdc590417c3457c795c314f6ff9669ad8de29f6957debdf4551e7f01a5a000972deea05104d5c284b1e47d057d04fd8de14c8e817460be132da8d7
674a6b10dd788033c8347c98faa64c9fdf844fa581210c615790dc15e48328f89b00f269c098ace7ccebaa144d961451ca649afa782301085ffc374c71c4205fa8f1420f673bf7ce4eae3a16758a7
f1db3ea1cc322266185ed75916cce3d9112"
>
</IIsFilters>
<IIsWebVirtualDir Location ="/LM/W3SVC/1796746353/root"
AccessFlags="AccessRead"
AppFriendlyName="默认应用程序"
AppIsolated="2"
AppPoolId="AppPool #10"
AppRoot="/LM/W3SVC/1796746353/Root"
AuthFlags="AuthAnonymous | AuthNTLM"
DirBrowseFlags="DirBrowseShowDate | DirBrowseShowTime | DirBrowseShowSize | DirBrowseShowExtension | DirBrowseShowLongDate |
EnableDefaultDoc"
Path="E:\dbbackup"
UNCPassword="49634462500000000600000040000000c18618ef86813600e050d39feb134cf3024228de33bd68f2be421a4acacb679900d66487abbb6bf4023b221cb811d48ca890d75d9a5d26fa
271b0d2978ed22733177004f7d762e76"
>
</IIsWebVirtualDir>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~进程池AppPool #10~~~~~~~~~~~~~~~~~
<IIsApplicationPool Location ="/LM/W3SVC/AppPools/AppPool #10"
AppPoolAutoStart="TRUE"
>
</IIsApplicationPool>
b.txt内容如下:
<?xml version ="1.0"?>
<configuration xmlns="urn:microsoft-catalog:XML_Metabase_V64_0">
<MBProperty>
<IIS_Global Location ="."
BINSchemaTimeStamp="251a765c4d99c801"
ChangeNumber="32763"
HistoryMajorVersionNumber="287"
SessionKey="49634b62980000004c00000040000000010200000168000000a40000562eac418683ad5dbacdcc0d5597e0a196c4f05c2179a088555682bd980277c5eb1d7c9f4549930d09dd3f466
a63942bc764e88a8ee577f36571d23de94d239effff4e005a3f7fc4d3657f011ae03ac72b2f03416fbe9bff88920d14a4bb87df4c69f1369c9408767988169fdc5a8ce267ee56b80dd96c8338ed52
cc326cd8e7dd7ec59c"
XMLSchemaTimeStamp="7f7c785c4d99c801"
>
</IIS_Global>
<IIsWebServer Location ="/LM/W3SVC/1692685952"
AuthFlags="0"
ServerAutoStart="TRUE"
ServerBindings=":80:test1.com"
ServerComment="test1.com"
>
</IIsWebServer>
<IIsFilters Location ="/LM/W3SVC/1692685952/filters"
AdminACL="49634462f0000000a400000040000000c18618ef8781fc29d0feeb5cc6685376b01fc41fe08d8245f4f702bfbd9f7ae1f74429e9e507f6f5729ef4a3e634126cb486569210f10310c4c
a0b701d02120f72f3a72e5339c7a367273ce8b4fdc590417c3457c795c314f6ff9669ad8de29f6957debdf4551e7f01a5a000972deea05104d5c284b1e47d057d04fd8de14c8e817460be132da8d7
674a6b10dd788033c8347c98faa64c9fdf844fa581210c615790dc15e48328f89b00f269c098ace7ccebaa144d961451ca649afa782301085ffc374c71c4205fa8f1420f673bf7ce4eae3a16758a7
f1db3ea1cc322266185ed75916cce3d9112"
>
</IIsFilters>
<IIsWebVirtualDir Location ="/LM/W3SVC/1692685952/root"
AccessFlags="AccessRead"
AppFriendlyName="默认应用程序"
AppIsolated="2"
AppPoolId="test1.com #10"
AppRoot="/LM/W3SVC/1692685952/Root"
AuthFlags="AuthAnonymous | AuthNTLM"
DirBrowseFlags="DirBrowseShowDate | DirBrowseShowTime | DirBrowseShowSize | DirBrowseShowExtension | DirBrowseShowLongDate |
EnableDefaultDoc"
Path="F:\perl"
UNCPassword="49634462500000000600000040000000c18618ef86813600e050d39feb134cf3024228de33bd68f2be421a4acacb679900d66487abbb6bf4023b221cb811d48ca890d75d9a5d26fa
271b0d2978ed22733177004f7d762e76"
>
</IIsWebVirtualDir>
<IIsWebServer Location ="/LM/W3SVC/1796746353"
AuthFlags="0"
ServerAutoStart="TRUE"
ServerBindings=":80:test2.com"
ServerComment="test2.com"
>
</IIsWebServer>
<IIsFilters Location ="/LM/W3SVC/1796746353/filters"
AdminACL="49634462f0000000a400000040000000c18618ef8781fc29d0feeb5cc6685376b01fc41fe08d8245f4f702bfbd9f7ae1f74429e9e507f6f5729ef4a3e634126cb486569210f10310c4c
a0b701d02120f72f3a72e5339c7a367273ce8b4fdc590417c3457c795c314f6ff9669ad8de29f6957debdf4551e7f01a5a000972deea05104d5c284b1e47d057d04fd8de14c8e817460be132da8d7
674a6b10dd788033c8347c98faa64c9fdf844fa581210c615790dc15e48328f89b00f269c098ace7ccebaa144d961451ca649afa782301085ffc374c71c4205fa8f1420f673bf7ce4eae3a16758a7
f1db3ea1cc322266185ed75916cce3d9112"
>
</IIsFilters>
<IIsWebVirtualDir Location ="/LM/W3SVC/1796746353/root"
AccessFlags="AccessRead"
AppFriendlyName="默认应用程序"
AppIsolated="2"
AppPoolId="test1.com #10"
AppRoot="/LM/W3SVC/1796746353/Root"
AuthFlags="AuthAnonymous | AuthNTLM"
DirBrowseFlags="DirBrowseShowDate | DirBrowseShowTime | DirBrowseShowSize | DirBrowseShowExtension | DirBrowseShowLongDate |
EnableDefaultDoc"
Path="E:\dbbackup"
UNCPassword="49634462500000000600000040000000c18618ef86813600e050d39feb134cf3024228de33bd68f2be421a4acacb679900d66487abbb6bf4023b221cb811d48ca890d75d9a5d26fa
271b0d2978ed22733177004f7d762e76"
>
</IIsWebVirtualDir>
<IIsApplicationPool Location ="/LM/W3SVC/AppPools/test1.com #10"
AppPoolAutoStart="TRUE"
>
</IIsApplicationPool>
<IIsApplicationPool Location ="/LM/W3SVC/AppPools/test2.com #10"
AppPoolAutoStart="TRUE"
>
</IIsApplicationPool>
上面的内容只是提取的一少部分,所以和实际运用会有点差别。a.txt中的2个站点有相同的特征都是同属AppPool #10。所以需要提取出来建对应的进程池 test1.com #10和test2.com #10,最后修改原来的AppPoolId中的 AppPool #10 为 test1.com #10和test2.com #10
|
|
2008-7-24 19:20 |
|
|
lfzzj
初级用户
 
积分 159
发帖 56
注册 2006-9-15
状态 离线
|
|
2008-7-24 20:48 |
|
|
lxmxn
版主
       
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
|
2008-7-24 22:36 |
|
|
lfzzj
初级用户
 
积分 159
发帖 56
注册 2006-9-15
状态 离线
|
|
2008-7-24 23:01 |
|
|
bat-zw
金牌会员
      永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
|
2008-7-25 00:59 |
|
|
lfzzj
初级用户
 
积分 159
发帖 56
注册 2006-9-15
状态 离线
|
『第
9 楼』:
我熟悉了下xmlStarlet,但始终无法完成对同属AppPool #10进程池的所有站点进行提取,比如提取出 test1.com和test2.com
|
|
2008-7-25 09:55 |
|
|
lfzzj
初级用户
 
积分 159
发帖 56
注册 2006-9-15
状态 离线
|
『第
10 楼』:
没有高人解答我就只有用vbs试试了
|
|
2008-7-25 17:26 |
|
|
slore
铂金会员
      
积分 5212
发帖 2478
注册 2007-2-8
状态 离线
|
『第
11 楼』:
vbs多好……这种操作就用VBS……快有准
|

S smile 微笑,L love 爱,O optimism 乐观,R relax 放松,E enthusiasm 热情...Slore |
|
2008-7-25 18:45 |
|
|
yishanju
银牌会员
     [b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『第
12 楼』:
iis 不是有几个相应的VBS,用来操作控制IIS的状态么、
比如添加站点之类的这种操作。
|

有问题请发论坛或者自行搜索,再短消息问我的统统是SB |
|
2008-7-25 23:41 |
|
|
suntb
高级用户
   
积分 581
发帖 277
注册 2006-12-23
状态 离线
|
『第
13 楼』:
版版有空写个xmlStarlet的中文教程吗?
最好给几个实例参考下
|
|
2008-7-26 09:52 |
|
|
yishanju
银牌会员
     [b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『第
14 楼』:
百度 xmlStarlet
|

有问题请发论坛或者自行搜索,再短消息问我的统统是SB |
|
2008-8-1 09:31 |
|