2015-10-13 79 views
0

我試圖在一個以SVR_OUTPUT_開頭的目錄中獲取文件的完整文件名,只是爲了驗證文件是否存在於使用批處理腳本的目錄中。如何獲取以匹配目錄中的字符開頭的文件的完整文件名?

我是成功的在目錄中獲取文件名中使用比較名稱:

@echo off 
setlocal disableDelayedExpansion 
:: Load the file path "array" 
for /f "tokens=1* delims=:" %%A in ('dir /s /b^|findstr /n "^"') do (
    set "file.%%A=%%B" 
    set "file.count=%%A" 
) 

:: Access the values 
setlocal enableDelayedExpansion 
for /l %%N in (1 1 %file.count%) do echo !file.%%N! 

但我需要進行比較,並檢查文件名以SVR_OUTPUT_開始。我是批量編程的新手。

任何人都可以幫助我嗎?

+0

有一種使用陣列,而不是直接在一個處理中的文件名的任何特定原因簡單的'for'循環? – wOxxOm

+0

不,這個想法是把文件名放到一個數組中,並迭代它來比較和匹配...... – gman

+1

使用通配符:'dir/s/b SVR_OUTPUT_ *'將列出所有以'SVR_OUTPUT_'開頭的文件,比手動迭代更快。 – wOxxOm

回答

0

正如wOxxOm已經寫好,所有你需要的清單開始SVR_OUTPUT_所有子目錄中的所有文件是:

dir /S /B SVR_OUTPUT_* 

刪除/S可以上市只是在當前目錄下的文件不包括子目錄或消息沒有找到與該模式匹配的文件。

以下代碼可被用來檢查是否在當前目錄中有至少1個文件開始SVR_OUTPUT_

@echo off 
if exist SVR_OUTPUT_* (
    echo There are follwing files starting with SVR_OUTPUT_ in %CD% 
    echo. 
    dir /B /ON SVR_OUTPUT_* 
) else (
    echo There is no file starting with SVR_OUTPUT_ in %CD% 
) 
pause 
+0

謝謝你的幫助! – gman

相關問題