-1

Windows で ActiveState perl 5.8 を使用します。の結果をsc qc MyServiceName変数に入れています。

$MSSQLResults=`sc qc $MSSQLServiceName`;
print "MSSQLResults $MSSQLResults";

変数を STDOUT に出力すると、次のようになります。

[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: MSSQL$INSTANCE1
        TYPE               : 10  WIN32_OWN_PROCESS 
        START_TYPE         : 3   DEMAND_START
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : "C:\Program Files\Microsoft SQL Server\MSSQL10_50.INSTANCE1\MSSQL\Binn\sqlservr.exe" -sINSTANCE1
        LOAD_ORDER_GROUP   : 
        TAG                : 0
        DISPLAY_NAME       : SQL Server (INSTANCE1)
        DEPENDENCIES       : 
        SERVICE_START_NAME : TESTLAB\svc_SQLServer

grep または正規表現の一致から返される文字列はTESTLAB\svc_SQLServer . grep、正規表現、またはその他のものを使用する必要がありますか? 私が望むものを達成するperlの行は何ですか? テキストTESTLAB\svc_SQLServerは、実行するマシンによって異なります。

4

1 に答える 1

4

私の理解が正しければ、$MSSQLResults検索したいスカラー変数 (例えば ) があります。その場合:

if (my ($service_start_name) = $MSSQLResults=~ m/SERVICE_START_NAME\s+:\s+(.*)/m) {
    # do something
}
于 2013-07-16T15:26:50.560 に答える