일괄 처리 연습(2015-6-29 업데이트)
코드는 다음과 같습니다.
@echo off
echo ……
echo ========================
dir|findstr /i "file(" > 1.txt
for /f "delims=) tokens=2" %%i in (1.txt) do echo :%%i
echo ========================
dir /ad /b > 2.txt
for /f "delims=]" %%a in (2.txt) do (dir "%%a"|findstr /i "file(" >> 3.txt && for /f "delims=) tokens=2" %%k in (3.txt) do echo %%a :%%k && del /q 3.txt)
del /q 1.txt 2.txt
echo ========================
pause
위에서 직접 쓴 것이라 번거로울 뿐만 아니라 현재 디렉터리와 다음 디렉터리의 디스크만 볼 수 있어 더 깊은 디렉터리에 도움이 되지 않는다.그리고 개인적으로는 뚱뚱해지기 쉬우니 더 편리한 방법이 있을 것 같다.
2, 현재 디렉터리 및 하위 디렉터리의 디스크 점용 인쇄(코드 1 - 개선)
코드는 다음과 같습니다.
@echo off
echo ……
echo ===========================
for /f "tokens=3,4" %%i in ('dir ^| findstr /i ') do echo :%%i%%j
echo ===========================
for /f "delims=]" %%k in ('dir /ad /b') do (
for /f "tokens=3,4" %%l in ('dir "%%k"^| findstr /i ') do echo %%k :%%l%%m
)
pause
for/f 문장의command에서 파이프 기호를 사용할 수 있도록 ^| 명령을 사용합니다.그게 중요해.
2, 현재 디렉터리와 하위 디렉터리의 디스크 점용을 인쇄합니다(코드 1-개선 2)
코드는 다음과 같습니다.
@echo off
echo ……
echo ===========================
for /f "tokens=3,4" %%i in ('dir ^| findstr /i ') do echo :%%i%%j
echo ===========================
for /f "delims=" %%k in ('dir /ad /b') do (
for /f "tokens=3,4" %%l in ('dir "%%k"^| findstr /i ') do echo %%k :%%l%%m
)
pause
확장 연습
1, 현재 디렉토리와 모든 하위 디렉토리의 디스크 사용량을 표시합니다.
@echo off
echo ……
echo ===========================
for /f "tokens=3,4" %%i in ('dir ^| findstr /i ') do echo :%%i%%j
echo ===========================
for /f "delims=]" %%k in ('dir /ad /b /s') do (
for /f "tokens=3,4" %%l in ('dir "%%k"^| findstr /i ') do echo %%k :%%l%%m
)
pause
실력 비교 2,dir 명령에만/s 스위치가 많이 나왔는데 디렉터리에 있는 모든 하위 디렉터리를 뜻합니다.
2, 현재 나무와 모든 하위 디렉터리에서 디스크가 100M 이상 차지하는 파일을 표시합니다
@echo off
echo ……
echo ===========================
for /f "tokens=3,4" %%i in ('dir ^| findstr /i "File( "') do echo %~dp0 :%%i%%j
echo ===========================
for /f "delims=" %%k in ('dir /ad /b /s') do (
for /f "tokens=3,4" %%l in ('dir "%%k"^| findstr /i "file "') do (
set xy=%%l
if "!xy:,=" gtr "1024000" echo 100M :%%k, %%l%%m
)
)
pause
조건 판단을 위해 if문을 추가하고 100M 이상의 폴더만 출력합니다.
3, 현재 디렉터리와 하위 디렉터리의 빈 폴더를 삭제합니다
방법1
@echo off &setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /s /b /ad') do (
dir /b "%%~i" | findstr ".">nul || rd /s /q "%%~i"
)
dir/b "%%~i"| findstr "."디렉터리에 파일이 있는지 판단합니다. 파일이 없으면 빈 폴더로 판정하고 rd/s/q '%%%~i' 를 삭제합니다. 주로 삭제는/s를 더해서 하위 디렉터리와 함께 삭제합니다.
방법2
@echo off &setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /s /ad /b') do (
for /f "tokens=3" %%j in ('dir "%%i" ^|findstr /i file') do (
set xj=%%j
if "!xj:,=!" equ "0" rd /s /q "%%i"
)
)
폴더의 디스크 점용을 읽고if문장을 통해 디스크 점용이 0인지 확인하고 0이면 삭제 동작을 실행합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
(OutSystems) 로우 코드도 괜찮습니다. BATCH 처리 !! vol.1로우 코드 플랫폼 「OutSystems」를 사내에 도입·개발 서포트하고 있다. Java나 Python도 즐겁지만, 앞으로의 시대는 로우 코드!! OutSystems는 WEB는 좋지만 BATCH가구나… 본고에서는, O...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.