수색…


소개

이 항목에서는 일괄 적으로 파일을 작성, 편집, 복사, 이동 및 삭제하는 방법을 학습합니다.

일괄 처리로 파일 만들기

텍스트 파일을 일괄 적으로 만들려는 이유는 여러 가지가있을 수 있습니다. 그러나 이유가 무엇이든간에, 이것이 당신이하는 방법입니다.

기존 텍스트 파일을 덮어 쓰려면 > 사용하십시오. 예:

@echo off
echo info to save > text.txt

그러나 기존 텍스트 파일에 텍스트를 추가하려면 >> 사용하십시오. 예:

@echo off
echo info to save >> text.txt

여러 줄의 텍스트를 파일에 저장해야하는 경우 use ()>text.txt 예 :

@echo off
(echo username
 echo password)>text.txt

파일을 일괄 적으로 복사하는 방법

한 위치에서 다른 위치로 파일을 복사 할 수 있습니다. 이 예에서 우리는 당신을 가르 칠 것입니다.

xcopy 명령을 사용할 수 있습니다. 구문은 xcopy c:\From C:\To

예:

@echo off
xcopy C:\Folder\text.txt C:\User\Username\Desktop

또한 사용할 수있는 스위치가 있습니다. 그들을 보려면 Start Menu -> Accessories -> Command Prompt 명령 프롬프트를 열고 xcopy /? 를 입력하십시오 xcopy /?

파일 이동

move 명령을 사용하여 파일을 이동할 수 있습니다.

@echo off
cd C:\Foo\Bat\Baz
move /Y Meow.bat "Meow Folder" >nul

Meow.bat 는 이동할 파일을 나타냅니다. "Meow Folder"는 Meow.batMeow Folder 이동 Meow.bat . /Y 는 확인을 요구하지 않는다고 말합니다. 이를 /-Y 배치 파일이 확인을 위해 프롬프트됩니다. >nul 명령 출력을 숨 깁니다. >nul 이 없다면 다음과 같이 출력됩니다 :

    1 File Moved

파일 삭제

DEL (별명 ERASE ) 명령을 사용하여 파일을 제거 할 수 있습니다.

@echo off
del foo.ext

이 명령은 foo.ext 를 현재 디렉토리에서 삭제합니다. 다음과 같이 경로와 파일을 지정할 수도 있습니다.

del C:\Foo\Bar\Baz.ext

그러나 경로를 따옴표 ( " )로 묶는 것이 항상 이상적입니다. 이유는 여기 에서 확인 하십시오 .


DEL 사용할 수있는 플래그가 몇 가지 있습니다.

깃발 기능
/P 파일을 삭제하기 전에 사용자에게 메시지를 표시합니다.
/F 읽기 전용 파일을 강제로 제거하십시오.
/S 하위 디렉토리에서 파일 제거
/Q 사용자 프롬프트를 방지합니다.
/A 필터 : 특정 속성 파일 만 제거합니다.
- 문자를 사용한다는 것은 해당 유형으로 분류 되지 않았 음을 의미합니다.

xcopy를 사용하지 않고 파일 복사

이 예 에서 사용자 BoeNoe는 xcopy 명령을 사용하여 파일을 복사하는 방법을 보여 줬습니다. copy 라는 추가 명령도 있습니다.

다음은 간단한 예입니다.

copy foo.ext bar.ext

이렇게하면 foo.extbar.ext 복사되고 bar.ext 가없는 경우 bar.ext 가 작성됩니다. 파일에 대한 경로도 지정할 수 있지만 항상 경로를 따옴표 ( " )로 묶는 것이 이상적입니다. 이유는 여기 에서 확인 하십시오 .


copy 수있는 플래그도 많이 있습니다 ( copy /? 또는 명령 프롬프트에서 help copy 하여 더 많은 것을 볼 수 있습니다.

파일의 N 번째 줄 편집

배치 파일에는 replaceappend ( >>> )를 제외하고 파일의 n 번째 줄을 바꾸는 내장 메서드가 없습니다. for 루프를 사용하면 이러한 종류의 함수를 에뮬레이트 할 수 있습니다.


@echo off
set file=new2.txt

call :replaceLine "%file%" 3 "stringResult"

type "%file%"
pause
exit /b

:replaceLine <fileName> <changeLine> <stringResult>
setlocal enableDelayedExpansion

set /a lineCount=%~2-1

for /f %%G in (%~1) do (
    if !lineCount! equ 0 pause & goto :changeLine
    echo %%G>>temp.txt
    set /a lineCount-=1
)

:changeLine
echo %~3>>temp.txt

for /f "skip=%~2" %%G in (%~1) do (
    echo %%G>>temp.txt
)

type temp.txt>%~1
del /f /q temp.txt

endlocal
exit /b
  • 주 스크립트는 replaceLine 함수를 호출하며, 파일 이름 / 변경할 행 /과 바꿀 문자열을 호출합니다.

  • 함수는 입력을받습니다.

    • 모든 라인을 echo 하고 대체 라인 이전에 임시 파일로 echo 합니다.
    • 그것은 echo 파일에 ES 교체 라인
    • 파일의 나머지 부분으로 출력을 계속합니다.
    • 임시 파일을 원본 파일에 복사합니다.
    • 임시 파일을 제거합니다.
  • 메인 스크립트는 컨트롤을 다시 얻고 결과를 type 합니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow