Atomic Habits

DOS 명령어 - 배치 파일, 폴더 복사, 파일 삭제 본문

IT/Linux-Vim

DOS 명령어 - 배치 파일, 폴더 복사, 파일 삭제

체계성 2022. 1. 9. 10:23
// 현재 경로 내 모든 폴더의 경로 출력(파일 제외) :  기존 파일명 + 연월.

C:\it2\raw22>dir /a-d /b      -> 파일만 표시  ( 하위 경로 파일 표시 X )
파일1.txt
파일2.txt

C:\it2\raw22>dir /ad /b     -> 폴더만 표시  ( 하위 경로 폴더 표시 X )
폴더1
폴더2

 

참조 : https://m.blog.naver.com/jed00/140188844895

C:\it2\raw22>dir /a /b -> 파일명만 전달 /s 추가 시 하위 파일도 탐색?
 
/b : 간략 표시
/a : a 뒤에 지정한 속성만 보여준다( /ad : 폴더만 표시,  
/s : [/ad /b : 현 경로 및 하위 경로의 폴더만 표시 + 절대경로 표시]
     [/a-d /b : 현 경로 및 하위 경로의 파일만 표시 + 절대경로 표시]

C:\it2\raw22>dir /ad /b /s     -> 절대경로 + 폴더명    
C:\it2\raw22\folder1
C:\it2\raw22\folder2
C:\it2\raw22\folder1\folder1_1

 

정렬

/o 옵션은 파일목록을 정렬해서 보여줍니다.

/o 뒤에 정렬순서를 영문자로 지정합니다. 

 항목  설명  예
 n  파일 이름(확장자제외) 순서로 보기(a, b, c, ...)  dir /on
 e  파일 확장자 순서로 보기(a, b, c, ...)  dir /oe
 s  파일 크기 순서로 보기(작은 것에서 큰것으로)  dir /os
 g  디렉토리 먼저 보기  dir /og
 
 
// 파일명 변경 :  기존 파일명 + 연월.
ren *.* ???_2201.*
->변경하자.  '모든 파일명 . 모든 확장자'   ? 개수만큼 + '_2201' . 원래 확장자로. 
- A.txt -> A_2201
- AAABBB.txt -> AAA_2201
 
 
// 하위 폴더 안에 생성.
mkdir     1\2;    3\4;
mkdir  .\1\2;  .\3\4;
-> 1폴더이 없을 경우 1폴더 생성, 1폴더 있을 경우 그 안으로 이동 후 생성( .\1\2; .\1\2; 도 동일)

 
// 연월 이름으로 폴더 생성(배치파일) 
set date2=%date:-=%                          //  월 일 사이의 '-'를 제거
set date3=%date2:~2,2%%date2:~4,2%   // 2,2 : 2 번째 다음 3번째 글자부터 2개만 추출
mkdir %date3%_work;                         // 폴더 생성
cd %date3%_work                              // 폴더 이동
mkdir 폴더1;폴더2;폴더3;                      // 하위 폴더 생성
exit

* 주의 :  mkdir work" "1; "work 1"; // 공백이 있을 경우 " "로 감싸기

< 참고 >
echo %time% // 9:23:21.16
echo %date% // 2022-01-09
set date2=%date:-=%  // 월 일 사이의 '-'를 제거
echo %date2% // 20220109

// 배치파일 생성(상대 경로)  (인코딩 ANSI로 저장)
cd test2
type *.csv > ..\total.csv  -> 상대 경로(상위 폴더로 이동 후 total.csv로 병합)
find /v /c *.csv ""       -> 라인 수 출력
del *.xlsx
cd ..
cd raw
find /v /c *.csv ""
del *.xlsx
cd ..
exit

// 배치파일 생성(절대 경로)
cd test2
type *.csv > c:\total.csv -> 병합 // 절대 경로 : 명령 프롬프트를 관리자 모드로 실행해야 함.
find /v /c *.csv ""
del *.xlsx
cd ..
cd raw
find /v /c *.csv ""
del *.xlsx
cd ..
exit
 

// 여러 폴더 생성
mkdir 폴더1;폴더2;폴더3;폴더4;폴더5;폴더6;폴더7;폴더8;폴더9;
 

// 하위 폴더의 모든 csv를 현 위치에 병합해서 생성한다.
type 폴더1\*.csv > 파일1.csv
type 폴더2\*.csv > 파일2.csv
type 폴더3\*.csv > 파일3.csv
type 폴더4\*.csv > 파일4.csv
type 폴더5\*.csv > 파일5.csv
type 폴더6\*.csv > 파일6.csv
type 폴더7\*.csv > 파일7.csv
type 폴더8\*.csv > 파일8.csv
type 폴더9\*.csv > 파일9.csv

// 파일 라인 수 출력
find /v /c *2*.csv ""      현재 및 하위 폴더 영역에서 파일명에 2가 포함된 csv 파일들 모두 삭제

// 현재 폴더를 포함한 모든 하위 폴더의 txt 파일 삭제
del /s *.xlsx

// 폴더 복사
xcopy "..\raw\*.*" "..\new" /i /e  
-> 상위 폴더 이동 후 raw 폴더 안 모든 파일을, 현재 위치 기준 상위 폴더 경로에 new 폴더 생성 후 그 안에 복사
xcopy "..\raw\*.*" ".\new" /i /e  
-> 상위 폴더 이동 후 raw 폴더 안 모든 파일을, 현재 경로에 new 폴더 생성 후 그 안에 복사(".\new" or "new")

xcopy C:\Src_folder\*.* F:\Dst_folder\ /e /h /k /y
1) /e : 비어 있는 하위 디렉토리까지 복사
2) /h : 히든 파일과 시스템 속성의 파일까지 복사
3) /k : 파일 속성 복사 (이 옵션이 없을 경우, 읽기전용 등의 속성이 없어짐)
4) /y : 덮어쓰기 할경우, 강제로 yes로 설정
4) 경로에 공백이 들어갈 경우 쌍따옴표("")로 묶기
    xcopy "C:\Src folder\*.*" "F:\Dst folder\" /e /h /k
5) /i : 2개 이상의 파일을 포함할 경우 복사 대상이 폴더 임의 명시
Comments