2012-07-25 66 views
1

重定向我試圖創建一個批處理文件通過文件夾和輸出去所有在指定文件夾中的每個文件的文件大小爲.txt輸出文件大小批量

到目前爲止,我有以下:

@echo off 
setlocal 
set size= 
FOR /R (F:\mediav3) %%A IN (*) DO set size=%%~zA 

我與實際輸出有問題。我試着用echo %size% > temp.txt和其他一些變化。基於我在這裏找到的其他輸出重定向帖子,但沒有設法提出一個工作解決方案。任何幫助將不勝感激。

+0

你需要什麼*尺寸*變量爲?如果只輸出到文件,則不需要,'FOR/RF:\ mediav3 %% A IN(*)DO echo %%〜zA >> temp.txt'將會工作 – wmz 2012-07-25 10:15:18

+0

我正在創建一個文件列表mediav3文件夾通過XML,因此我可以在另一個批處理文件中引用它,以根據文件名和大小刪除不在列表中的任何文件。 – user1539598 2012-07-26 19:22:49

+0

如果您不對大小進行計算(除法,乘法等),您可以直接使用參數,而無需先將其分配給變量。請注意巴厘島的答案也是正確的,並且它向你展示了一些被稱爲*延期擴展*的東西,這很值得注意。還要注意''''表示追加,所以你需要首先清零你的文件。讓我知道你是否需要更多的指導,我會在這種情況下做出正確的回答。 – wmz 2012-07-26 20:19:02

回答

1

這工作

@echo off 
setlocal enabledelayedexpansion 
for /r F:\mediav3 %%a in (*) do (
set size=%%~za 
echo !size! >>C:\sizes.txt 
) 
+0

剛剛嘗試過,輸出文件sizes.txt被創建,但是是一個空白文檔。有任何想法嗎? – user1539598 2012-07-26 20:10:50

+0

管理得到它的工作,感謝您的幫助! – user1539598 2012-07-26 21:44:17

1

任何有興趣我最後的批處理文件如下:

@echo off 
setlocal 
echo ^<fileinfo^> 
FOR /R F:\MEDIAV3 %%A IN (*) DO echo ^<filename^>%%~fA^</filename^>>>fileinfo.xml & echo  ^<bytes^>%%~zA^</bytes^>>>fileinfo.xml & echo.>>fileinfo.xml 
echo ^</fileinfo^>>>fileinfo.xml 

批次輸出格式,可以輕鬆地轉換文件名和的filesizes成和xml列表。這樣做可能有一個更清潔的方式,但這當然有效。