PowerShell로 파일과 폴더를 만드는 방법

Windows PC에서 파일과 폴더를 만들어야 할 때, GUI를 사용하는 것이 가장 직관적인 방법입니다. 그러나 PowerShell은 한 번에 여러 파일과 폴더를 지능적으로 생성할 수 있습니다. 이는 거의 모든 IT 전문가에게 흔한 작업이며, 이 안내서에서는 New-Item PowerShell cmdlet을 사용하여 파일과 폴더를 만드는 방법을 보여드릴 것입니다.

PowerShell에서 파일을 만드는 방법

PowerShell을 사용하는 방법을 이해하면, 일상적인 작업을 훨씬 쉽게 처리할 수 있습니다. New-item, Add-Content, Test-Path cmdlet을 사용하여 파일과 폴더를 만드는 방법을 살펴봅시다.

광고

New-item 명령어로 파일 만들기

PowerShell을 사용하여 새 파일을 만들려면 New-Item cmdlet을 사용하면 됩니다. MyTextFile.txt라는 새 텍스트 파일을 만들고 싶다면, 다음과 같은 구문을 사용하면 됩니다:

New-Item MyTextFile.txt
Creating a file using the New-Item cmdlet

위의 예에서 PowerShell은 c: 디렉토리에 파일을 만들었습니다. 그러나 파일 이름에 경로를 추가함으로써 다른 위치를 지정할 수 있습니다. 아래에 예제가 있습니다:

New-Item c:\tools\MyNewFile.txt
Creating a file in a different folder

위의 화면 캡처에서 알 수 있듯이, 저는 temp 디렉토리에 있었지만 tools 디렉토리에 파일을 만들었습니다. 새 파일을 만드는 방법을 익힌 후, 대량으로 파일을 만들기 위해 추가할 코드는 한 줄 뿐입니다.

간단한 ForEach 루프를 사용하여 유사한 파일 이름을 가진 파일 10개를 만드는 예제입니다.

광고

(1..10) | ForEach-Object {New-item “MyNewFile$_.txt”}
Create multiple files with a simple loop

필요한 경우, Get-ChildItem cmdlet을 사용하여 해당 디렉토리의 모든 파일을 나열할 수도 있습니다.

이미 존재하지 않는지 확인한 후 파일 생성

파일을 만들기 전에 해당 파일이 이미 존재하는지 확인하기 위해 PowerShell을 사용할 수도 있습니다. PowerShell을 사용하여 파일이 이미 존재하는지 테스트할 수 있는 여러 가지 방법이 있지만, 가장 쉬운 방법은 Test-Path cmdlet을 사용하는 것입니다.

이름대로, Test-Path cmdlet은 경로가 존재하는지 확인할 수 있습니다. 파일과/또는 폴더 경로를 확인할 수 있습니다. 이 cmdlet은 파일 또는 폴더가 존재하면 True를 반환하고 그렇지 않으면 False를 반환합니다.

아래 예에서는 파일이름이 MyTextFile.txt인 파일이 존재하는지 확인하고 있습니다. 파일이 존재하기 때문에 Test-Path cmdlet은 True를 반환했습니다:

광고

Test-Path MyTextFile.txt
Using test-Path to see if a file exists

파일이 존재하는지 확인하는 논리를 익힌 후, Test-Path 명령을 사용하여 Test-Path가 false를 반환할 때 파일을 생성하는 If 문장을 사용할 수 있습니다. 아래 예제에서 그 방법을 보여드리겠습니다:

  • 여기서 $FileName이라는 변수를 사용하여 파일명을 쓰기 편하게 하고 반복되는 타이핑을 피했습니다.
  • 다음으로 파일을 확인하기 위해 If 문을 추가했습니다. 소괄호에는 테스트할 조건이 들어가고 중괄호에는 참일 때 실행하고 싶은 코드가 들어갑니다. 제 예제에서는 -not 연산자를 사용했습니다.
  • 코드는 MyTextFile.txt란 파일이 존재하지 않으면 파일을 생성하도록 되어 있습니다. If 문장은 조건이 참일 때만 실행됩니다.
  • I have added the -not parameter to change the condition to match on False instead of True.
$Filename = "MyTextFile.txt"
if (-not(test-path $Filename)){new-item $FileName}
Checking if a file exists and creating a new file if it doesn’t exist

출력을 함께 확인하여 발생한 일을 정확히 파악하겠습니다: 예제 1에서 코드를 실행했고 아무 일도 일어나지 않았습니다; 출력이 없는 것을 주목해 주세요. 그 이유는 내 c: 디렉터리에 MyTextFile.txt란 파일이 이미 존재했기 때문입니다. 존재하기 때문에 if 문이 코드를 실행하지 않았습니다.

예제 2에서는 그러나 temp 디렉토리에서 도구 디렉토리로 디렉토리를 변경한 것을 알 수 있습니다. 후자에는 MyTextFile.txt라는 파일이 없기 때문에, 코드를 두 번째로 실행할 때 if문이 New-Item cmdlet을 실행하여 새 파일을 생성합니다.

새 파일이나 기존 파일에 데이터를 작성하는 방법

PowerShell로 새 파일을 생성하는 방법을 이미 살펴보았습니다. 그러나 이전 화면 캡쳐를 살펴보면 모든 새 파일의 파일 크기가 0바이트임을 알 수 있습니다. 그것은 New-Item cmdlet이 실제로 빈 파일을 만들기 때문입니다.

기존 파일에 데이터를 추가하려면 Add-Content cmdlet을 사용할 수 있습니다. 구문은 New-item 명령과 마찬가지로 쉽게 이해할 수 있습니다. 아래에 예제가 있습니다:

Add-Content mytextfile.txt -Value "Here's some sample text written via PowerShell"

다음으로, Get-Content cmdlet을 사용하여 파일을 확인할 수 있습니다.

get-content .\mytextfile.txt
Adding content to an existing file

I can also open the file in PowerShell using the Invoke-Item cmdlet.

Invoke-Item .\mytextfile.txt
Opening a file with the Invoke-Item cmdlet

기존 파일 덮어쓰기 방법

PowerShell을 사용하여 새 파일을 만들 수 있다면, 폴더 내 기존 파일을 대체하는 데도 사용할 수 있습니다. PowerShell은 동일한 이름을 가진 파일이 이미 존재할 때 파일을 만들려고 시도하면 경고를 표시합니다.

아래 예시에서 MyNewFile3.txt라는 파일을 만들려고 시도할 때 PowerShell이 표시하는 오류 메시지를 볼 수 있습니다.

New-item .\MyNewFile3.txt
PowerShell warns of an existing file with the same name

그러나 해당 파일을 대체하려면 -force 매개변수를 추가하여 동일한 이름을 가진 기존 파일을 덮어쓸 수 있습니다.

new-item .\MyNewFile3.txt -Force
Overwriting a file using the -force parameter

PowerShell에서 폴더를 만드는 방법

우리는 PowerShell에서 파일을 생성하는 다양한 방법을 살펴보았습니다. 이제 New-Item과 md 명령을 사용하여 폴더를 생성하는 방법을 살펴보겠습니다.

New-Item 명령을 사용하여 폴더 만들기

PowerShell을 사용하여 폴더를 만드는 것도 이전에 파일을 만드는 데 사용한 New-Item cmdlet과 같은 간단한 작업입니다. 필요한 것은 -ItemType 매개변수를 지정하는 것뿐입니다.

-ItemType 매개변수는 New-Item cmdlet이 파일, 디렉터리(폴더), 심볼릭 링크, 연결점 또는 하드 링크를 만드는지를 제어합니다. 이러한 옵션에 대해 더 자세히 알아보려면 New-Item Microsoft Docs 페이지에서 확인할 수 있습니다.

PowerShell을 사용하여 새 폴더를 만드는 방법은 새 파일을 만드는 것과 유사합니다. 아래 명령어를 사용한 예시가 있습니다:

new-item TestFolder1 -ItemType Directory
Creating a folder using the New-Item cmdlet

md 명령으로 폴더 생성

PowerShell은 이제 크로스 플랫폼 언어로, 즉 Windows, macOS 또는 Linux에서 실행할 수 있습니다. 명령 줄에서 파일 및 폴더를 만드는 프로세스는 Windows, Linux 및 macOS에서 유사합니다.

그러나 각 OS는 동일한 작업을 수행하는 자체 명령을 가지고 있습니다. 예를 들어 ‘NewDirectory’라는 새 폴더를 만드는 경우, 각 OS는 비슷한 구문을 갖고 있지만 다른 명령어 이름을 가지고 있습니다. DOS에서는 구문이 ‘MD NewDirectory’인 반면, Linux에서는 ‘MKDIR NewDirectory’입니다.

마이크로소프트는 다른 언어의 인기 있는 명령어 이름들을 PowerShell에 포함시켰습니다. MKDIR 또는 MD와 같은 명령어는 PowerShell에 실제로 존재하지 않습니다. 대신 PowerShell과 동일한 작업을 수행하는 그들의 PowerShell 형제에 대한 별칭입니다.

PowerShell에서 MD는 MKDIR의 별칭이고, MKDIR은 New-Item cmdlet의 별칭입니다. 즉, PowerShell에서 MD, MKDIR 또는 New-Item을 입력하면 그 모든 명령어가 New-Item cmdlet을 실행하는 동일한 효과가 있습니다.

다음은 이 기능을 강조하는 빠른 예제입니다.

md Demofile1.txt
mkdir demofile2.txt
new-item demofile 3.txt
Creating new files with PowerShell aliases

위의 예에서 New-Item에 대한 여러 가지 별칭 및 cmdlet 이름을 사용하여 세 개의 파일을 생성한 것을 볼 수 있습니다. 별칭은 모두 New-Item을 입력하는 것과 정확히 같이 작동합니다.

결론

PowerShell을 사용하면 파일과 폴더를 만드는 여러 가지 방법이 가능합니다. New-Item cmdlet을 사용하면 파일과 폴더를 쉽게 생성할 수 있습니다.

Microsoft는 PowerShell에 DOS 및 Linux과 같은 인기 있는 운영 체제에서 참조하는 별칭을 포함하여 관리자가 익숙한 느낌을 받도록 도와줍니다. 우리는 파일과 폴더를 대규모로 생성하기 위해 루프를 사용할 수 있으며, If와 같은 논리 문을 사용하여 이미 존재하지 않는 파일만 생성하도록 할 수 있습니다.

또한 이미 존재하는 파일이 우리가 원할 때만 코드에 의해 덮어쓰이지 않도록 할 수 있습니다. 이러한 옵션들은 파일과 폴더를 관리하는 일상적인 프로세스를 자동화하기 위한 스크립트를 만들 수 있게 합니다.

PowerShell은 매우 다재다능한 도구이며, 파일 및 폴더를 만드는 방법을 배웠으니, 파일과 폴더를 삭제하는 데 PowerShell을 사용하는 이전 가이드를 확인할 수 있습니다. PowerShell을 사용하여 파일 및 폴더를 삭제하는 방법.

Source:
https://petri.com/powershell-how-to-create-files-folders/