将Shell脚本转换为Sipp的批处理

时间:2013-11-27 09:01:03

标签: shell batch-file sip

这是用于记录sipp输出的shell脚本,如网站http://sipp.sourceforge.net/doc/faq.html

所示

之前我从未完成过批处理脚本,而且我很难理解如何转换此代码以使其在Windows中运行。

 cat run.sh
#!/bin/sh
>results.txt
for i in $*
do
  echo Launching test $i >> results.txt
  ./sipp -sf $i -m 1 127.0.0.1
  if test $? -ne 0
    then
        echo Test $i failed >> results.txt
    else
        echo Test $i succeeded >> results.txt
    fi
done
exit 0

有人能帮助我吗?此外,for循环中的$*表示什么? 我为if条件IF %test NEQ 0批量尝试了等效,但它出现了语法错误。

2 个答案:

答案 0 :(得分:1)

对于“直接翻译”而非“防弹”代码,您可以尝试

@echo off
    setlocal enableextensions

    for %%i in (%*) do (
        echo Launching test %%i >> results.tx
        .\sipp -sf %%i -m 1 127.0.0.1
        if errorlevel 1 (
            echo Test %%i failed >> results.txt
        ) else (
            echo Test %%i failed >> results.txt
        )
    )

    exit /b 0

不确定它是否适合sipp,我从未使用过它,但这是基本的想法

答案 1 :(得分:0)

$*将所有输入参数作为单个单词返回给您。

另外,据我所知,BAT中不存在“测试”。如果您想查看退出代码,可以使用ERRORLEVEL之类的内容(查看类似问题https://superuser.com/questions/194662/how-to-check-the-exit-code-of-the-last-command-in-batch-file

您要做的是,了解shell脚本逻辑,然后使用http://ss64.com/nt/等参考站点来创建代码的端口(同时请记住它可能不是纯粹的 - - 一个港口)。

另外,有几点想法:

  • 不确定您是否有可用的SIPP Windows端口。可能想检查一下。
  • 考虑开始使用Powershell。它肯定比BAT更通用;如果你来自bash背景,可能会更容易切换到。