0

Windows 7 でかなり単純なバッチ ファイルを使用しています。ここでは、いくつかの変数を定義してコマンドで使用できるようにしたいと考えています。これは私がこれまでに持っているコードです:

@ECHO OFF
set $servertype=IIS
set $servername=MJNHNX4
set $folder=C:\Logfiles
set $database=Perfmoncounters
if $servertype=IIS 
   C:\Program Files (x86)\Log Parser 2.2\logparser.exe "Select * into IISCounters from "$folder\IIS_Log.csv"" -i:CSV -o:SQL -server:$servername -database:$database -driver:"SQL Server" -fixcolnames:ON -createTable:ON
if $servertype=SQL
   C:\Program Files (x86)\Log Parser 2.2\logparser.exe "Select * into SQLCounters from "$folder\SQL_Log.csv"" -i:CSV -o:SQL -server:$servername -database:$database -driver:"SQL Server" -fixcolnames:ON -createTable:ON
if $servertype=Client
   C:\Program Files (x86)\Log Parser 2.2\logparser.exe "Select * into ClientCounters from "$folder\Client_Log.csv"" -i:CSV -o:SQL -server:$servername -database:$database -driver:"SQL Server" -fixcolnames:ON -createTable:ON

ただし、実行すると、と表示されます"=IIS was unexpected at this time"。If ステートメントの形式が正しくありませんか?

4

4 に答える 4

1

これはテストされていませんが、構文を修正してテストをより堅牢にするためのいくつかの要素が含まれています。

@ECHO OFF
set $servertype=IIS
set $servername=MJNHNX4
set $folder=C:\Logfiles
set $database=Perfmoncounters
if "%$servertype%"=="IIS" (
   "C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "Select * into IISCounters from "$folder\IIS_Log.csv"" -i:CSV -o:SQL -server:$servername -database:$database -driver:"SQL Server" -fixcolnames:ON -createTable:ON
)
if "%$servertype%"=="SQL" (
   "C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "Select * into SQLCounters from "$folder\SQL_Log.csv"" -i:CSV -o:SQL -server:$servername -database:$database -driver:"SQL Server" -fixcolnames:ON -createTable:ON
)
if "%$servertype%"=="Client" (
   "C:\Program Files (x86)\Log Parser 2.2\logparser.exe" "Select * into ClientCounters from "$folder\Client_Log.csv"" -i:CSV -o:SQL -server:$servername -database:$database -driver:"SQL Server" -fixcolnames:ON -createTable:ON
)
于 2013-05-31T14:40:19.477 に答える
0

IFステートメントに問題があるかのようにエラーから聞こえます-使用してみてください

if $servertype==IIS

== は比較に使用されるためです。

ソース: http://www.robvanderwoude.com/ntif.php

于 2013-05-31T14:40:16.657 に答える
0

正しい構文は次のとおりです。

if %$servertype%==IIS command

%var%変数の値を返しますvar

==文字列の有効な等価演算子です

コマンドは、コマンドと同じ行で開始する必要があります。IF

「完全なファイル名」(ドライブ指定子C:から実行可能ファイル名の末尾まで) は、rabbits-ears ( ).exeを使用して引用する必要があります。"

于 2013-05-31T14:43:20.290 に答える
0

enter code hereあなたの表記は少しずれています。

設定するには、set servertype=IIS

間隔、単一の =、および $ の欠如に注意してください。

使用するには、 を使用します%ISS%

%0 から %9 は、バッチ ファイルへのコマンド ライン引数であることに注意してください。

if ステートメントには ==; が必要です。例えば%variable%==2

于 2013-05-31T14:40:40.260 に答える