導航:首頁 > 文件處理 > 批處理讀取文件夾大小

批處理讀取文件夾大小

發布時間:2022-08-22 21:36:03

1. 批處理檢測文件夾大小

批處理練習(3) 文件處理 製作進度條 判斷字元長度2011-06-18 18:25題1:批處理修改文件夾名。

在一個歷史學院的文件夾里有2530個子文件夾,裡面都有這個學院的學生的資料。這些子文件夾是:12位的學生學號和對應學號

的姓名:104052020001陳娜娜 104052020002馬克林那 104052020003林肯 。。。。

現在我們只想保留這些學號的後4位,也就是號數如:1 2 3 ......

請寫上你的答案,一起分享吧!!

因為原來的文件夾里有內容,所以我們是將源文件夾進行重命名,使用ren

又是對一堆文件夾進行操作,所以使用 for /d

還有就是處理像0010這樣的又不能直接%b:0=%所以就想用for /f 「tokens=* delims=0」

我就在這個歷史學院的文件夾里建立一個批處理,我的代碼:

@echo off
setlocal enabledelayedexpansion
for /d %%a in (*) do (
set n=%%a
set nn=!n:~8,4!
for /f "tokens=* delims=0" %%b in ("!nn!") do (
set rn=%%b
ren %%a !rn!
)
)
pause

題2:如何去除文本文檔里所有重復的字元串?並進行處理

在1.txt文檔里有很多字元串都以空格相連:

1 2 3 6 5656 不要 去死 999

2 我是誰 xx ff不要 999 56565

......

用批處理將沒有重復的所有字元串提取出來放在2.txt中。

我的答案:

用定義變數的方法,就是沒拿到其中的每一個字元串,是新的就對他進行定義,是已經定義了的就跳過,這就

用到了if not defined 變數名 (定義新字元串 )

那我們如何取得每一個字元串呢?用for /f 「delims= 」 %%a in (1.txt)這樣的話tokens又該怎麼辦成千上萬的字元串啊!

想到因為每個字元串都間都有空格,用沒有參數的for就可以取得每一個字元串了。可是沒有參數的for在括弧里的只能是

字元串啊,我們該如何把1.txt離得內容給放到括弧里呢。我是用for /f 「delims=」一行一行的放進去的。

我在當前文件夾下建立批處理文件內容如下:

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%a in (1.txt) do (
for %%b in (%%a) do (
if not defined %%b (
set %%b=1

rem 這里是隨意給個值
set /p=%%b <nul
)))>>2.txt

rem 這里如果用>2.txt 試試看會有什麼結果說明了什麼
pause

如果你覺得在()>>2.txt 很不習慣你也可以在用:set m=!m! %%b 在for前定義一個空變數set "m=" 然後再for後輸出m:echo !m!>2.txt

當然了最簡單的還是用:set /p=%%b <nul>>2.txt用同行輸出再導入2.txt。

好!做到這里就得到了2.txt。可是由於使用set /p=%%b<nul所以所有的字元串都是在同一行雖然分成了很多行,很不美觀。

為此我們再來練習一下:就是把上面的2.txt進行整理使之每一行都只有10個字元串。

下面是我的代碼:

@echo off
setlocal enabledelayedexpansion
set /a n=0
for /f "delims=" %%a in (2.txt) do (
for %%b in (%%a)do (
set /a n+=1
if !n!==10 (
echo %%b >>1111.txt
set /a n=0
) else (
set /p=%%b <nul>>1111.txt
)))
pause
那如果原來的字元串不是都在同一行的話,也就是每行都有不定個字元串,又該怎麼辦?把不熟悉的化成熟悉的唄。

不是同一行我們就把它變成同一行(這個也不難),然後就簡單嘍!

得出了1111.txt。現在我又想從1111.txt中查看一些字元串共出現了多少次。

我的代碼如下:

@echo off
setlocal enabledelayedexpansion

echo 從1111.txt中查找字元串出現的次數
set /p cc=您要查找的是:
set /a n=0
for /f "delims=" %%a in (1111.txt) do (
for %%b in (%%a) do (
if "%%b"=="!cc!" (
set /a n+=1
)))
echo 所查找的!cc!共出現了!n!次。
pause

題3:製作一個進度條。

網上好多關於用批處理製作進度條的,於是自己也想試著做一下,剛開始的代碼:

@echo off
echo ┏━━━━━━━━━┓
set /p "a= "<nul
for /l %%a in (1 1 10) do (
set /p=■<nul
ping /n 1 192.168.1.106>nul
)
echo.
echo ┗━━━━━━━━━┛
pause

哈哈!!!結果很悲劇!邊框都不完整兩邊都沒有,而且是先顯示的只有上邊框沒有下邊框。

就想著上網去看,發現看代碼真是蛋疼,相當的暈!!!

無奈只好自己慢慢想把。

要想同時顯示上下邊框這個簡單只要把邊框全部放入for循環中。

至於顯示邊框的兩邊,要結局的就是對其,我就想到用 %變數:~0,數值% 來解決了,但是又發現■占兩個空格,這就說明

%%里的數值不是固定植,正好for /l 循環中的數是變化的,就可以拿來用了。

改進後的代碼:

@echo off
setlocal enabledelayedexpansion
color 1f
set "nn=■"
for /l %%a in (39 -1 20) do (
cls
rem 剛開始沒這個,結果一列下來,悲劇!
set "nnn=!nn! "
set m=!nnn:~0,%%a!
echo ┏━━━━━━━━━━━━━━━━━━━━┓
set /p=┃<nul
set /p=!m!<nul
echo ┃
echo ┗━━━━━━━━━━━━━━━━━━━━┛
set nn=!nn!■
ping /n 2 192.168.1.103>nul
rem 時間延時用,這里ping的地址在測試時自行更換,當然了也可以用for及其他的時間延時方法,很多

rem 可是很多我還不理解,繼續學習以後可能也會做個總結。
)
pause

題4:(復習)如何檢測給定字元串的長度?

這個做過了,以前不會,現在會了自己也寫一寫。如下:

@echo off
title 字元長度查看
color 0f
mode con cols=40 lines=25
echo.&echo.
echo ----------------------------
echo.&echo.&echo.&echo.&echo.
setlocal enabledelayedexpansion
set /p b=輸入的要判斷的字元串:
set a=!b!
:aa
if "!a!" neq "" (
set /a n+=1
set a=!a:~0,-1!
goto aa
)
echo.&echo.&echo.&echo.
echo 您輸入的!b!字長為:!n!
echo.&echo.&echo.&echo.&echo.
echo 再見!
echo.&echo.
echo --------------------------<nul
pause>nul

2. 批處理怎樣獲取文件夾大小

for /f "delims=" %%1 in ('dir d:\wind.txt') do echo.%%~z1
文件變數 是 %%1 得到它的大小就 %%~z1 就可以了
具體見for/?

3. 你好,批處理,怎麼提取文件夾及子文件夾解析度,大小,位深度,謝謝

批量提取指定文件夾下的所有文件名稱及其路徑使用一個批處理腳本即可輕松實現。
軟體工具:win7、文本文檔。
1、在指定的文件夾中新建一個記事本(文本文檔)。
2、在記事本中輸入DIR /S/B >輸入路徑和文件文件名.TXT,然後保存。
3、將剛才創建的這個記事本的擴展名改.bat。
4、雙擊打開運行這個.bat腳本,運行時會有個CMD窗口一閃而過。然後得到一個「輸入路徑和文件文件名.TXT」的文本。
5、打開這個「輸入路徑和文件文件名.TXT」文本,就可以看到該文件夾中所有文件、文件夾及子文件夾的路徑和文件名。裡面每一行是一個文件、文件夾的具體路徑;最後一個\後面的就是文件名稱。

4. 批處理搜索文件並獲取文件大小

for%%iin(%alldrive%)doifexist%%i:dir/s/b%%i:|find"%filename%">>results.txt

上面代碼改為:

(for%%iin(%alldrive%)do(
ifexist%%i:(
for/f"delims="%%ain('dir/b/s"%%i:\%filename%"2^>nul')doecho,%%a%%~za
)
))>results.txt

5. 批處理 得到文件夾下所有文件大小

@echooff
set/psrc=請輸入目標目錄或拖動目錄至此:
cd/d"%src%"||(pause&goto:eof)
(for/f"delims="%%ain('dir/b/a-d')do(
echo%%a %%~za
))>%~dp0輸出.txt

6. 使用批處理獲取文件名及文件大小信息

命令行解析
比如我要獲取D盤下面w文件夾中的所有圖紙,並生成文件列表清單,操作步驟如下:
1、運行CMD
2、變更磁碟文件夾
C:\Documents and Settings\Administrator>d:
D:\>cd\w
D:\w>
3、生成文件列表清單
D:\w>dir/b>d:\list.txt
dir/b表示只顯示文件夾中文件的文件名與拓展名
>代表重定向符號
d:\list.txt代表重定向路徑及生成的文件列表清單的名稱及格式

7. 批處理遍歷文件夾獲取最小文件大小

@echo off
for /f "delims=" %%f in ('dir /b /a-d /o-s') do (
set z=%%~zf)
echo 最小的文件大小是:%z%
echo.&pause

8. 批處理檢測文件夾大小 指定目錄 查找文件夾大小小於100M的文件夾,並輸出文件夾名、

BAT置於源目錄執行,不適用於英文系統

@echooff
set/a"_100MB=100<<10<<10"
for/r/d%%ain(*)do(
for/f"tokens=3delims="%%iin('dir/a/s/-c"%%a"^|find"個文件"')doset"size=%%i"

set/a"size=!size!-%_100MB%"2>nul&&if!size!lss0echo;%%a
endlocal
)
pause

9. 用批處理 怎麼獲取桌面一個快捷方式的根目錄文件夾的大小

@echo off
for /f "delims=" %%i in ('find ":" "%~1" ^|findstr /r "^[A-z]:[\\]"') do (
set filename=%%~dpi
)
set filename=%filename:~0,-1%
for /f "tokens=* delims=" %%j in ('dir /a-d /b /s "%filename%"') do (
set /a num+=%%~zj/1024
)
echo %num%
pause
保存為bat將快捷方式拖入此bat即可獲得文件上級目錄的大小

10. 如何用批處理獲取一個文件的大小

@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /a-d /b *.*') do (
echo %%i:文件大小=%%~zi位元組&echo.
)
pause

閱讀全文

與批處理讀取文件夾大小相關的資料

熱點內容
php跑在什麼伺服器 瀏覽:122
編譯器怎麼跳轉到下一行 瀏覽:450
嵌入式py編譯器 瀏覽:324
rplayer下載安卓哪個文件夾 瀏覽:298
安卓手機里的電子狗怎麼用 瀏覽:748
pythonspyder入門 瀏覽:764
趣質貓app是什麼 瀏覽:60
皮帶壓縮機經常吸不上 瀏覽:205
西部隨行版怎樣加密 瀏覽:996
釘釘上如何壓縮圖片 瀏覽:924
cad輸入命令不顯示窗口 瀏覽:618
小米視頻加密之後怎麼看 瀏覽:76
超級程序員劉芳閱讀 瀏覽:833
顧家九爺在哪個app 瀏覽:820
我的世界怎麼在聯機大廳做伺服器 瀏覽:290
分手程序員 瀏覽:448
php將html導出為word 瀏覽:802
騰訊加密視頻能破解嗎 瀏覽:1008
反編譯後導入eclipse 瀏覽:949
買阿里雲伺服器有郵箱嗎 瀏覽:825