找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 78806|回复: 16

[文件操作] []已解决]批处理如何提取某个命令执行结果中特定字符串设为变量

[复制链接]
发表于 2016-8-14 21:00:59 | 显示全部楼层 |阅读模式
如何取出命令输出的值设为变量
操作IIS7  利用 appcmd 命令列出 上面一行内容:

C:\Windows\System32\inetsrv\appcmd.exe list sites  显示如下 :

SITE "Default Web Site" (id:1,bindings:http/*:80:,state:Started)

那么怎样分别取出下面的值并分别定义一个变量
Default Web Site
id:1   这里的1是随机数,每次添加一个站点都会加1  我只要取出 这个值就行

bindings:http/*:80:www.aaa.com,state:Started,www.bb.com,wei.aa.com



谢谢版主

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2016-8-14 21:11:46 | 显示全部楼层
 楼主| 发表于 2016-8-14 21:12:05 | 显示全部楼层
不好意思 版主没有找到 才向你请教
发表于 2016-8-14 21:22:14 | 显示全部楼层
回复 3# websfx
首页就有例子,搜索都免了
http://www.bathome.net/thread-41364-1-1.html
发表于 2016-8-14 21:51:58 | 显示全部楼层
  1. @echo off
  2. for /f "tokens=1-2 delims=(," %%i in ('appcmd list site') do (
  3.     set "var1=%%i"
  4.     set "var2=%%j"
  5.     goto :ShowResult
  6. )

  7. :ShowResult
  8. set var1=%var1:~6,-2%
  9. echo,%var1%
  10. echo,%var2%
  11. pause
复制代码
 楼主| 发表于 2016-8-14 23:22:02 | 显示全部楼层
本帖最后由 websfx 于 2016-8-14 23:51 编辑

谢谢Batcher, 为什么 只列出 "Default Web Site"  这一个站点 呢  如果 有N个站点怎么一次列出来
发表于 2016-8-15 04:12:54 | 显示全部楼层
參考 Findstr
 楼主| 发表于 2016-8-16 09:45:31 | 显示全部楼层
本帖最后由 websfx 于 2016-8-16 09:51 编辑

@echo off
for /f "tokens=1-2 delims=(," %%i in ('appcmd list site' | findstr "Site" ) do (
    set "var1=%%i"
    set "var2=%%j"
        pause
    goto :ShowResult
)

:ShowResult
set var1=%var1:~6,-2%
echo,%var1%
echo,%var2%
pause
这样写直接跳出 不知道怎么回事
如果能查找site 所有的站点 然后列出来 最后能在前面插入序列号怎么弄 例:

1. www.aaa.com
2. www.ccc.com
3. www.dddd.com

评分

参与人数 1PB -2 收起 理由
pcl_test -2 未按版规发帖

查看全部评分

发表于 2016-8-16 13:03:57 | 显示全部楼层
回复 8# websfx
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. for /f "tokens=1-2 delims=(," %%i in ('appcmd list site') do (
  5.     set "var1=%%i"
  6.     set var1=!var1:~6,-2!
  7.     set /a n+=1
  8.     echo,!n!.!var1!
  9.     echo,%%j
  10. )
  11. pause
复制代码
 楼主| 发表于 2016-8-16 14:27:24 | 显示全部楼层
本帖最后由 websfx 于 2016-8-16 15:56 编辑

首先要非常感谢管理员

评分

参与人数 1PB -2 收起 理由
pcl_test -2 问题未交代清楚

查看全部评分

发表于 2016-8-16 15:21:40 | 显示全部楼层
 楼主| 发表于 2016-8-16 15:48:13 | 显示全部楼层
已经把你的BBS翻了个顶超天了 
 楼主| 发表于 2016-8-16 16:20:28 | 显示全部楼层

如何在输出变量后分多行显示,并在前面输入序列号时删除对应值

回复 9# Batcher
如何在输出变量后分多行显示,并在前面输入序列号时删除对应值

下面的脚本是管理员写的 我加了一点内容[code]:del_domain_IIS7
cls
color 0A
setlocal EnableDelayedExpansion
echo.
set n=0
for /f "tokens=1-2 delims=(," %%i in ('appcmd list site') do (
    set "var1=%%i"
    set var1=!var1:~6,-2!
    set /a n+=1

    echo,-^> !n!. !var1!
)

评分

参与人数 1PB -3 收起 理由
pcl_test -3 按版规发帖

查看全部评分

 楼主| 发表于 2016-8-16 17:29:31 | 显示全部楼层
看到pcl_test老大扣分 之后这个贴没人回了
发表于 2016-8-16 17:46:47 | 显示全部楼层
本帖最后由 pcl_test 于 2016-8-16 17:47 编辑

回复 14# websfx

我来回一个:有个毛关系。特么要不是我的提醒及帮你修改,你的原帖只有那么一句话:如何在输出变量后分多行显示,并在前面输入序列号时删除对应值
有关系的是你的问题别人有没兴趣、你的问题是否交代清楚和神秘的人品问题,别问我为什么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 15:32 , Processed in 0.023257 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表