我有两个变量,即DOW和RxDow,其中%DOW%为'周五'(本周当前日),%RxDow%为'周一,周三,周五'(本周指定日期)
当我尝试使用以下命令时,它不起作用
find /f %DOW% in %RxDow% do (echo exec spreindexusertables >> back.sql)
它说
在这个时候出人意料。
我需要一个命令来搜索%RxDOW%中的%DOW%,如果找到,则将所需命令回显到back.sql。请帮忙。
此致
答案 0 :(得分:1)
您可以尝试从%DOW%
变量中删除%RxDOW%
值;如果结果与原始%RxDOW%
变量的不同,那么%DOW%
就在那里。此方法不需要任何外部命令,如find.exe
。
@echo off
setlocal EnableDelayedExpansion
set "DOW=Fri"
set "RxDow=Mon,Wed,Fri"
if "!RxDow:%DOW%=!" neq "%RxDow%" echo exec spreindexusertables >> back.sql
答案 1 :(得分:0)
如果我理解正确的话,你想把exec spreindexusertables写入back.sql,如果这一天是工作日。正确?如果是这样,以下内容可以帮助您:
@echo off
setlocal
set "dow=Fri"
set "RxDow=Mon,Tues,Weds,Thurs,Fri"
for /f "tokens=1 delims=," %%a in ('echo %RxDow%^|Find /i "%dow%"') do (echo exec spreindexusertables >> back.sql)
答案 2 :(得分:0)
使用&&执行第二个命令的运算符是第一个没有错误的运算符。
set "dow=Mon"
set "RxDow=Mon,Tues,Weds,Thurs,Fri"
(echo %RxDow% | find "%dow%">nul) && (echo exec spreindexusertables >> back.sql)