我必須匹配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 . . .
請指導如何可以做到這一點的日誌。
你有什麼期望出現內部download.txt?如果它是匹配* abc * .txt的所有文件的內容,請使用「type」而不是「echo」?如果它是一個文件名列表,你需要別的東西。 – lessthanideal
它不是完整的腳本,我已經刪除了實際的腳本的一些部分,只集中在我看到問題的一部分。 ,實際的行是「echo mget * abc * 20170202 * .txt >> download.txt」。我只是想找到一種方法來匹配文件列表中的所述模式* abc * 20170202 * .txt –
什麼是'* abc * 20170202 * .txt'或'abc * 20170202.txt'應該是匹配的?如果文件'abc.txt'不存在,你究竟想要做什麼?請提供完整正確的答案,並請在您的問題中編輯您正在嘗試的實際命令中的代碼,_不要將它們替換爲您認爲可能做類似的事情。 – Compo