2014-10-07 168 views
0
for /f "skip=1 tokens=* usebackq" %%u in ("\\%%a\C$\ProgramData\Symantec\Symantec Endpoint Protection\12.1.*\Data\Definitions\VirusDefs\definfo.dat) do (

我試圖讀取文件definfo.dat的第二行不被認可,通過批處理文件,其中%%a是計算機名使用下面的命令。當我執行此操作時,通配符無法識別。它尋找名稱爲12.1.*的文件夾,而不是尋找任何組合12.1.1, 12.1.2, 12.1.3等。在批處理文件

我在這裏做錯了什麼?由於該路徑也有空間,因此我無法排除引號。

回答

0

您只允許在路徑的最後一個元素中使用通配符,因此,您的中間通配符的代碼將失敗。

您需要另一個for命令來搜索文件夾

.... 
for /d %%z in (
    "\\%%a\C$\ProgramData\Symantec\Symantec Endpoint Protection\12.1.*" 
) for /f "skip=1 tokens=* usebackq" %%u in (
    "%%~z\Data\Definitions\VirusDefs\definfo.dat" 
) do (
....