Batch file If Else语句中的通配符*-批脚本

Batch file If Else语句中的通配符*-批脚本,batch-file,wildcard,Batch File,Wildcard,我必须在bat文件的else块中匹配文件模式。 *abc*20170202*.txt 下面是我需要的示例: IF EXIST abc.txt ( ECHO "abc File exists" TIMEOUT 5 ) else ( echo *abc*20170202*.txt>> download.txt echo File printed successful.. PAUSE ) @ECHO OFF for /f "tokens=2*" %%a in ('net user "%U

我必须在bat文件的else块中匹配文件模式。 *abc*20170202*.txt

下面是我需要的示例:

IF EXIST abc.txt (
ECHO "abc File exists"
TIMEOUT 5
) else (
echo *abc*20170202*.txt>> download.txt
echo File printed successful..
PAUSE
)
@ECHO OFF
for /f "tokens=2*" %%a in ('net user "%USERNAME%" /domain ^| find /i "Full Name"') do set DisplayName=%%b
IF EXIST ~%~n0%~x0.loc SET /p dname=<~%~n0%~x0.loc
IF EXIST ~%~n0%~x0.loc (
ECHO *****************************************************
ECHO Script is already running by User : %dname%  
ECHO *****************************************************
TIMEOUT 5
) else (
ECHO %DisplayName% > ~%~n0%~x0.loc
echo cd /abcdata/contrl>> download.txt
echo prompt>> download.txt
echo mget *abc*20170202*.txt>> download.txt
echo bye>> download.txt
ftp -s:download.txt xx.xx.xx.xx
REM "Replace xx.xx.xx.xx with a IP address"
del /Q download.txt
echo File downloded successful..
TIMEOUT 5
DEL ~%~n0%~x0.loc
)
它不认为这里是野生动物。 请指导如何实现这一目标

编辑

下面是我需要的示例:

IF EXIST abc.txt (
ECHO "abc File exists"
TIMEOUT 5
) else (
echo *abc*20170202*.txt>> download.txt
echo File printed successful..
PAUSE
)
@ECHO OFF
for /f "tokens=2*" %%a in ('net user "%USERNAME%" /domain ^| find /i "Full Name"') do set DisplayName=%%b
IF EXIST ~%~n0%~x0.loc SET /p dname=<~%~n0%~x0.loc
IF EXIST ~%~n0%~x0.loc (
ECHO *****************************************************
ECHO Script is already running by User : %dname%  
ECHO *****************************************************
TIMEOUT 5
) else (
ECHO %DisplayName% > ~%~n0%~x0.loc
echo cd /abcdata/contrl>> download.txt
echo prompt>> download.txt
echo mget *abc*20170202*.txt>> download.txt
echo bye>> download.txt
ftp -s:download.txt xx.xx.xx.xx
REM "Replace xx.xx.xx.xx with a IP address"
del /Q download.txt
echo File downloded successful..
TIMEOUT 5
DEL ~%~n0%~x0.loc
)

请指导如何做到这一点。

echo
的工作方式与您认为的不同

试试这个:

dir /s/b *abc*20170202*.txt>> download.txt

您希望在download.txt中显示什么?如果所有文件的内容与abc.txt匹配,请使用“type”而不是“echo”?如果是一个文件名列表,你需要一些其他的东西。这不是完整的脚本,我已经删除了实际脚本的一些部分,只关注我看到问题的部分,实际行是“echo mget abc*20170202.txt>>download.txt”。我只是想找到一种方法来匹配文件列表中所述的模式abc*20170202.txt什么是
*abc*20170202*.txt
abc*20170202.txt
?如果文件
abc.txt
不存在,您到底想做什么?请提供完整和正确的答案,请用您正在尝试的实际命令编辑问题中的代码,不要将它们替换为您猜测可能会执行类似操作的命令。我已用所有脚本编辑了问题,删除了ip。请提出解决方案,谢谢。请不要编辑问题到使现有答案无效的程度。编辑后的问题与编辑前的问题完全不同。编辑被撤消。(而且,我现在必须去“meta.stackoverflow.com”询问在这种情况下该怎么办。)这对我来说很有效。我不知道你有什么问题。如果……否则……对您有效吗?更新后的问题是一个完全不同的问题。