iT邦幫忙

0

批次檔 FOR迴圈 搜尋資料夾的檔案 比對資訊??

icebox5438 7 月前3830 瀏覽

工作上的需要 我需要比對某一個資料夾裡面的資料,提取相關的資訊,然後做相關的動作,不過如果這個資料夾裡面還有資料夾,我想要抓取這個資料夾中的資料夾 卻抓不到相關的資訊,請問各位前輩有任何解法嗎?

語法如下(我測試用~~先抓取檔案的檔案名稱)

for %%i in (C:\Users\test\Desktop\testbackup\*) do (
set file=%%~ni
echo !file!
pause )

這是我抓取的資料夾內的資料
http://ithelp.ithome.com.tw/upload/images/20161216/20103813RrVYGjnoGI.jpg

下面是我的執行結果http://ithelp.ithome.com.tw/upload/images/20161216/20103813TTDS9cemSy.jpg

就是抓不到裡面資料夾的資訊,直接就跳到檔案了,請問各位前輩有解嗎?謝謝

看更多先前的討論...收起先前的討論...
fillano iT邦超人 1 級 ‧ 7 月前 檢舉
用dir來產生名單。

例如:`dir /a-d /s /b` 可以列出所有的檔案,包含資料夾中的檔案,但是不會列出資料夾。
icebox5438 iT邦新手 5 級 ‧ 7 月前 檢舉
列出檔案我了解,不過還是需要列出資料夾,所以才苦惱
小成 iT邦高手 10 級 ‧ 7 月前 檢舉
資料夾如果要用 for,要加 /d, for /d %i in (*) do

或者也可以用 forfiles
蟹老闆 iT邦大師 1 級 ‧ 7 月前 檢舉
我一開始也看不懂是要取檔案還是取目錄,所以不敢給建議,
用 dir /b 如果連同子目錄也要的話加上 /s
for /f %%i in ('dir /b') do (
Echo %%~ni
pause )

如果在迴圈內要用Set 指定變數或使用!file!的變數格式,那你需要再之前加上 SetLocal ENABLEDELAYEDEXPANSION 來啟用延遲環境變數.
icebox5438 iT邦新手 5 級 ‧ 7 月前 檢舉
感謝各位大大

1 個回答

1
海綿寶寶
iT邦超人 1 級 ‧ 7 月前
@ECHO OFF
FOR /D %%d IN (*) DO (
  ECHO %%d
)

我要發表回答

立即登入回答