本帖最后由 neorobin 于 2011-3-31 20:53 编辑
1. 你的代码格式不好, 左圆括号有 12 个, 而右圆括号只有 11 个, 第一个 FOR 后面的循环体的左圆括号无配对的右圆号
2. 第一代码 @echo &setlocal ... echo 是没意义的, 要么 echo off, 要么 echo on
3. 多行语句输出到一个文件, 较之于 > 加 >> 的用法不如采用如下形式:- >file (
- statement
- statement
- statement
- )
复制代码 更多的分析, 你就自己看吧- @echo &setlocal enabledelayedexpansion
- for /r F:\123 %%i in (*.txt) do (
- set str=%%~ni
- set str1=!str:~,-8!
- set str2=%%i
- for /f "tokens=3 delims=\" %%1 in ("!str2!") do set str2=%%1
-
- if !str1!==onlinetimerecord (
- echo use !str2!^;>456.sql
- echo insert into onlinetimerecord^(PlayerID,AccountID,ClientType,OnlineTime,OfflineTime,LoginIP,DiamondLogin,DiamondLogoff^) values >>456.sql
- for /f "delims=" %%a in ('more %%i') do echo ^(%%a^)^,>>456.sql
- sed -i "$s/,$/;/" 456.sql
- ) else (
- if !str1!==gmoperationrecord (
- echo use !str2!^;>456.sql
- echo insert into gmoperation^(OperationTime,Operator,OperationCommand,Target^) values >>456.sql
- for /f "delims=" %%a in ('more %%i') do echo ^(%%a^)^,>>456.sql
- sed -i "$s/,$/;/" 456.sql
- )
- pause
- )
复制代码
|