Variables DOS批处理文件:在变量中搜索变量

Variables DOS批处理文件:在变量中搜索变量,variables,search,batch-file,Variables,Search,Batch File,我有两个变量,即道指和RxDow,其中%DOW%是“Fri”(一周的当前日期),而%RxDow%是“Mon,Wed,Fri”(一周的指定日期) 当我尝试使用以下命令时,它不起作用 find /f %DOW% in %RxDow% do (echo exec spreindexusertables >> back.sql) 上面说 在这个时候发生了意想不到的事情 我需要一个命令来搜索%RxDOW%中的%DOW%,如果找到,则将所需命令回显到back.sql。请帮忙 关于,如果我理解正

我有两个变量,即道指和RxDow,其中%DOW%是“Fri”(一周的当前日期),而%RxDow%是“Mon,Wed,Fri”(一周的指定日期)

当我尝试使用以下命令时,它不起作用

find /f %DOW% in %RxDow% do (echo exec spreindexusertables >> back.sql)
上面说

在这个时候发生了意想不到的事情

我需要一个命令来搜索%RxDOW%中的%DOW%,如果找到,则将所需命令回显到back.sql。请帮忙


关于,

如果我理解正确,您希望在工作日将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)

您可以尝试从
%RxDOW%
变量中删除
%DOW%
值;如果结果与原始的
%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

使用执行第二个命令的&&运算符,第一个命令没有错误

set "dow=Mon"
set "RxDow=Mon,Tues,Weds,Thurs,Fri"

(echo %RxDow% | find "%dow%">nul) && (echo exec spreindexusertables >> back.sql)

您使用的是什么版本的Windows?在Windows 8.1/F上,不是有效的查找开关。你真的在用它吗?如果是这样,请张贴您的准确代码。。。!谢谢工作完美,得到了我要求的准确结果。再次感谢!