2014-11-24 72 views
0

我有這個文件結構,其中每個子目錄包含特定的文件類型,可以說pdf。在dos FOR循環中分配一個字符串變量

ParentDIR
- > SUBDIR1
- > SUBDIR2

我試圖從父運行一個批處理文件,遞歸返回路徑,所以我可以解析它們並執行一些動作

@echo off 
for /R %%v in (*.pdf) do ( 
set pathname=%%~pv 
echo %pathname% 
) 

我希望這裏的路徑變量的輸出讀取

\ PARENTDIR \ SUBDIR1
\ PARENTDIR \ SUBDIR2

但它讀取

\ PARENTDIR \ SUBDIR2
\ PARENTDIR \ SUBDIR2

如果我贊同%%〜PV值,而不將其分配給一個變量,它是正確的。

我怎樣才能得到這個變量的值被正確地分配在循環中的每次迭代?

回答

1
@echo off >Nul 
setlocal EnableDelayedExpansion 
for /R %%v in (*.pdf) do ( 
set pathname=%%~pv >Nul 
echo !pathname! 
) 
endlocal 

這裏介意setlocal命令的EnableDelayedExpansion關鍵字=展開變量在執行時,而不是在分析時,如果使用的話的%pathname%一個​​語法來代替。

相關問題