我正在使用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语句是否格式错误?
答案 0 :(得分: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
)
答案 1 :(得分:0)
答案 2 :(得分:0)
enter code here
你的记谱有点过了。
要设置,请使用set servertype=IIS
注意间距,单个=和缺少$。
要使用,请使用%ISS%
。
请注意,%0到%9是批处理文件的命令行参数。
if语句需要==;例如
如果%variable%==2
答案 3 :(得分:0)
正确的语法是
if %$servertype%==IIS command
%var%
返回变量var
==
是字符串
该命令必须与IF
必须使用兔子耳朵(C:
)引用“完整文件名”(从驱动器说明符.exe
到可执行文件名"
的末尾)