批量无法在IF块内设置

时间:2016-10-24 21:20:04

标签: batch-file if-statement

所以我希望扩展这个批处理文件以解决一周中的每一天,我目前正在测试它1天但是一旦我完成了我可以轻松扩展但我遇到的问题我无法在其中设置值如果是日语,我尝试设置扩展延迟并使用!代替%,但我在if语句的第二行上得到了相同的“缺失”运算符“错误。有没有人有对我来说有什么想法?以下是剧本:请在REM if %DAY% EQU Mon(行的大约一半处开始,之前的所有内容只需参考:

PS:当我运行它时发布的if语句被删除一切正常,这就是为什么我很困惑。 PPS:在底部,我添加了关于Day.txt文件的信息

@echo off
setlocal enabledelayedexpansion

date /t>nul
for /f "tokens=1 delims= " %%i in ('date /t') do set DAY=%%i

    type "C:\My Scripts\Temp Files\Mon.txt">nul
for /f "tokens=7 delims=?   :" %%i in ('type "C:\My Scripts\Temp Files\Mon.txt"') do set MonHrWrk=%%i
for /f "tokens=8 delims=?   :" %%i in ('type "C:\My Scripts\Temp Files\Mon.txt"') do set MonMinWrk=%%i  
for /f "tokens=6 delims=?   ." %%i in ('type "C:\My Scripts\Temp Files\Mon.txt"') do set MonHrChrg=%%i
for /f "tokens=7 delims=?   ." %%i in ('type "C:\My Scripts\Temp Files\Mon.txt"') do set MonMinChrg=%%i
    type "C:\My Scripts\Temp Files\Tue.txt">nul
for /f "tokens=7 delims=?   :" %%i in ('type "C:\My Scripts\Temp Files\Tue.txt"') do set TueHrWrk=%%i
for /f "tokens=8 delims=?   :" %%i in ('type "C:\My Scripts\Temp Files\Tue.txt"') do set TueMinWrk=%%i  
for /f "tokens=6 delims=?   ." %%i in ('type "C:\My Scripts\Temp Files\Tue.txt"') do set TueHrChrg=%%i
for /f "tokens=7 delims=?   ." %%i in ('type "C:\My Scripts\Temp Files\Tue.txt"') do set TueMinChrg=%%i
    type "C:\My Scripts\Temp Files\Wed.txt">nul
for /f "tokens=7 delims=?   :" %%i in ('type "C:\My Scripts\Temp Files\Wed.txt"') do set WedHrWrk=%%i
for /f "tokens=8 delims=?   :" %%i in ('type "C:\My Scripts\Temp Files\Wed.txt"') do set WedMinWrk=%%i  
for /f "tokens=6 delims=?   ." %%i in ('type "C:\My Scripts\Temp Files\Wed.txt"') do set WedHrChrg=%%i
for /f "tokens=7 delims=?   ." %%i in ('type "C:\My Scripts\Temp Files\Wed.txt"') do set WedMinChrg=%%i
    type "C:\My Scripts\Temp Files\Thu.txt">nul 
for /f "tokens=7 delims=?   :" %%i in ('type "C:\My Scripts\Temp Files\Thu.txt"') do set ThuHrWrk=%%i
for /f "tokens=8 delims=?   :" %%i in ('type "C:\My Scripts\Temp Files\Thu.txt"') do set ThuMinWrk=%%i  
for /f "tokens=6 delims=?   ." %%i in ('type "C:\My Scripts\Temp Files\Thu.txt"') do set ThuHrChrg=%%i
for /f "tokens=7 delims=?   ." %%i in ('type "C:\My Scripts\Temp Files\Thu.txt"') do set ThuMinChrg=%%i
    type "C:\My Scripts\Temp Files\Fri.txt">nul
for /f "tokens=7 delims=?   :" %%i in ('type "C:\My Scripts\Temp Files\Fri.txt"') do set FriHrWrk=%%i
for /f "tokens=8 delims=?   :" %%i in ('type "C:\My Scripts\Temp Files\Fri.txt"') do set FriMinWrk=%%i  
for /f "tokens=6 delims=?   ." %%i in ('type "C:\My Scripts\Temp Files\Fri.txt"') do set FriHrChrg=%%i
for /f "tokens=7 delims=?   ." %%i in ('type "C:\My Scripts\Temp Files\Fri.txt"') do set FriMinChrg=%%i
REM if %DAY% EQU Mon(   
        set /a WeekHrWrk1=%MonHrWrk%+%TueHrWrk%+%WedHrWrk%+%ThuHrWrk%+%FriHrWrk%
        set /a WeekHrWrk2=%WeekHrWrk1%*60
        set /a WeekMinWrk1=%MonMinWrk%+%TueMinWrk%+%WedMinWrk%+%ThuMinWrk%+%FriMinWrk%  
        set /a WeekHrWrk3=%WeekHrWrk2%+%WeekMinWrk1%
        set /a WeekHrWrk=%WeekHrWrk3%/60
        set /a WeekMinWrk=%WeekHrWrk3%%%60`

        set /a WeekHrChrg1=%MonHrChrg%+%TueHrChrg%+%WedHrChrg%+%ThuHrChrg%+%FriHrChrg%              
        set /a WeekHrChrg2=%WeekHrChrg1%*60
        set /a WeekMinChrg1=%MonMinChrg%+%TueMinChrg%+%WedMinChrg%+%ThuMinChrg%+%FriMinChrg%            
        set /a WeekMinChrg2=%WeekMinChrg1%/100

        set /a WeekHrChrg=%WeekHrChrg1%+%WeekMinChrg2%
        set /a WeekMinChrg=%WeekMinChrg1%%%100

        set /a WeekHrWrkAvg1=%WeekHrWrk%*60+%WeekMinWrk%
        set /a WeekHrWrkAvg2=%WeekHrWrkAvg1%/5                                  
        set /a WeekHrWrkAvg=%WeekHrWrkAvg2%/60
        set /a WeekMinWrkAvg=%WeekHrWrkAvg2%%%60

        set /a WeekHrChrgAvg1=%WeekHrChrg1%*60
        set /a WeekHrChrgAvg2=%WeekMinChrg1%*60/100
        set /a WeekHrChrgAvg1=%WeekHrChrgAvg1%+%WeekHrChrgAvg2%
        set /a WeekHrChrgAvg2=%WeekHrChrgAvg1%/5                                
        set /a WeekHrChrgAvg=%WeekHrChrgAvg2%/60
        set /a WeekMinChrgAvg3=%WeekHrChrgAvg2%%%60
        set /a WeekMinChrgAvg=%WeekMinChrgAvg3%*100/60

        if %WeekMinWrk% LSS 10 (set WeekMinWrk=0%WeekMinWrk%)
        if %WeekMinChrg% LSS 10 (set WeekMinChrg=0%WeekMinChrg%)


echo.                   Totals:   %WeekHrWrk%:%WeekMinWrk%        %WeekHrChrg%.%WeekMinChrg%>"C:\My Scripts\Temp Files\sums_Temp.txt"

if %WeekMinWrkAvg% LSS 10 (set WeekMinWrkAvg=0%WeekMinWrkAvg%)

echo.                      Average:    %WeekHrWrkAvg%:%WeekMinWrkAvg%>"C:\My Scripts\Temp Files\Avg_Temp.txt"          %WeekHrChrgAvg%.

%WeekMinChrgAvg%

copy /B "C:\My Scripts\Temp Files\sums_Temp.txt"+"C:\My Scripts\Temp Files\Avg_Temp.txt" "C:\My Scripts\Temp Files\Totals_Temp.txt">nul

del "C:\My Scripts\Temp Files\sums_Temp.txt"
del "C:\My Scripts\Temp Files\Avg_Temp.txt"
REM         )

Mon.txt:

  

Mon 10/24/2016 8:14 4:45 8:31 8.50

1 个答案:

答案 0 :(得分:0)

JosefZ认为这是正确的问题,当我尝试时我也使用了!在块结束后,这就是为什么它没有工作。谢谢大家的帮助,提供很好的建议!!!