2017-07-03 139 views
-4

我必须匹配bat文件中else块中的文件模式。 * ABC * 20170202 * .TXT如果其他语句中包含Wild Cards * - 批处理脚本

下面是我需要这样的例子:

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 mget *abc*20170202*.txt>> download.txt 并不认为*的狂野性格和相当正常文本。 它应该匹配10个文件,但它不会。

下面是我收到运行此

Connected to xx.xx.xx.xx. 
220 (vsFTPd x.x.x) 
User (xx.xx.xx.xx:(none)): 
331 Please specify the password. 

230 Login successful. 
ftp> cd /abcdata/contrl 
250 Directory successfully changed. 
ftp> prompt 
Interactive mode Off . 
ftp> mget *abc*20170202*.txt 
200 Switching to ASCII mode. 
ftp> bye 
221 Goodbye. 
File downloded successful.. 
Press any key to continue . . . 

请指导如何可以做到这一点的日志。

+0

你有什么期望出现内部download.txt?如果它是匹配* abc * .txt的所有文件的内容,请使用“type”而不是“echo”?如果它是一个文件名列表,你需要别的东西。 – lessthanideal

+0

它不是完整的脚本,我已经删除了实际的脚本的一些部分,只集中在我看到问题的一部分。 ,实际的行是“echo mget * abc * 20170202 * .txt >> download.txt”。我只是想找到一种方法来匹配文件列表中的所述模式* abc * 20170202 * .txt –

+2

什么是'* abc * 20170202 * .txt'或'abc * 20170202.txt'应该是匹配的?如果文件'abc.txt'不存在,你究竟想要做什么?请提供完整正确的答案,并请在您的问题中编辑您正在尝试的实际命令中的代码,_不要将它们替换为您认为可能做类似的事情。 – Compo

回答

1

echo不按照您认为的方式工作。

试试这个:

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

这似乎不工作,如果其他块 –

+0

它适用于我。我不知道你有什么样的问题。它是否在'if ... else ...'之外为你工作? –

+0

请检查更新的问题并提出建议。 –