Split 후 확장자 변경 방법

때때로 우리는 대용량 파일을 수용 할 수있는 충분한 공간 우리는 어떤 대가를 치르더라도 정보를 우리에게 가져갈 수있는 것이 시급합니다. 최적의 솔루션은 압축기를 사용하는 것입니다. 작업을 수행하지 않고 구성된 경우 정보를 지정된 크기의 조각으로 나누고 추가 보호 요소로 중복 코드를 추가합니다.

우리가 참여하고 추구하고 싶지 않다면 간단한 해결책 운영 체제 자체가 우리에게 제공 할 수 있다는 것을 알고 있습니다. 분열 Unix에서 가져온 복사 Windows이 작업은 매우 간단합니다. Windows에서 파일을 쉽게 나누고 결합하는 방법을 보여줍니다.

Windows에는 타사 도구를 사용하여 복잡하지 않고 간단한 방법으로 기본 작업을 수행 할 수있는 간단한 명령이 많이 있습니다. 파일을 분할하고 결합 할 수있는 것도 그중 하나입니다. CRC 코드를 사용하지 않고 간단한 방법 우리가 복사하는 정보의 무결성을 확인합니다.

파일을 우리가 지정한 크기보다 작은 파일로 나눌 수 있도록, 우리는 명령을 다운로드해야합니다 분열, Unix에서 Windows로 가져온 후 (현재까지 Microsoft는 이와 같은 자체 명령의 필요성에 대한 우리의 목소리를 듣지 못했습니다) 명령 인터프리터로 이동하여 다음 시퀀스를 입력하십시오.

split -b = size_in_bytes file.ext new_file.

이것은 우리가 바이트로 표시하고 확장자가 new_file.aa, new_file.ab, new_file.ac 등으로 변경되는 특정 크기의 파일을 출력합니다.

이전 방법을 사용하여 이전에 조각난 파일을 결합 할 수 있습니다., 다음 순서를 입력하고 모든 조각이 새 파일에 모일 때까지 기다릴 수 있습니다.

copy /b fichero1.ext + fichero2.ext + fichero3.ext nuevofichero.ext

어떤 경우에도 명령을 사용하는 것이 좋습니다 유형, 다음과 같습니다. type file1.ext file2.ext file3.ext> newfile.ext, ASCII 코드의 인쇄 할 수없는 문자로 인해 결과 파일에 오류가 발생할 수 있기 때문입니다. 그리고 최종 내용에 대한 확인이 없으면 더 많은 것입니다.


기사의 내용은 우리의 원칙을 준수합니다. 편집 윤리. 오류를보고하려면 여기에.

주요 콘텐츠로 건너뛰기

이 브라우저는 더 이상 지원되지 않습니다.

최신 기능, 보안 업데이트, 기술 지원을 이용하려면 Microsoft Edge로 업그레이드하세요.

about_Scripts

  • 아티클
  • 10/26/2022
  • 읽는 데 20분 걸림

이 문서의 내용

간단한 설명

PowerShell에서 스크립트를 실행하고 작성하는 방법을 설명합니다.

자세한 설명입니다.

스크립트는 하나 이상의 PowerShell 명령을 포함하는 일반 텍스트 파일입니다. PowerShell 스크립트에는 파일 확장명이 있습니다 .ps1 .

스크립트 실행은 cmdlet을 실행하는 것과 매우 유사합니다. 스크립트의 경로 및 파일 이름을 입력하고 매개 변수를 사용하여 데이터를 제출하고 옵션을 설정합니다. 컴퓨터 또는 다른 컴퓨터의 원격 세션에서 스크립트를 실행할 수 있습니다.

스크립트를 작성하면 나중에 사용할 수 있는 명령이 저장되고 다른 사용자와 쉽게 공유할 수 있습니다. 가장 중요한 것은 스크립트 경로와 파일 이름을 입력하기만 하면 명령을 실행할 수 있습니다. 스크립트는 파일의 단일 명령만큼 간단하거나 복잡한 프로그램만큼 광범위할 수 있습니다.

스크립트에는 특수 주석, 매개 변수 사용, 데이터 섹션 지원 및 보안을 위한 디지털 서명과 같은 #Requires 추가 기능이 있습니다. 스크립트 및 스크립트의 모든 함수에 대한 도움말 항목을 작성할 수도 있습니다.

스크립트를 실행하는 방법

Windows에서 스크립트를 실행하려면 기본 PowerShell 실행 정책을 변경해야 합니다. 실행 정책은 비 Windows 플랫폼에서 실행되는 PowerShell에는 적용되지 않습니다.

기본 실행 정책인 Restricted는 로컬 컴퓨터에 쓰는 스크립트를 포함하여 모든 스크립트가 실행되지 않도록 합니다. 자세한 내용은 about_Execution_Policies를 참조하세요.

실행 정책은 레지스트리에 저장되므로 각 컴퓨터에서 한 번만 변경해야 합니다.

실행 정책을 변경하려면 다음 절차를 사용합니다.

명령 프롬프트에 다음을 입력합니다.

Set-ExecutionPolicy AllSigned

또는

Set-ExecutionPolicy RemoteSigned

변경 내용은 즉시 적용됩니다.

스크립트를 실행하려면 전체 이름과 스크립트 파일의 전체 경로를 입력합니다.

예를 들어 C:\Scripts 디렉터리에서 Get-ServiceLog.ps1 스크립트를 실행하려면 다음을 입력합니다.

C:\Scripts\Get-ServiceLog.ps1

현재 디렉터리에서 스크립트를 실행하려면 현재 디렉터리의 경로를 입력하거나 점을 사용하여 현재 디렉터리를 표시한 다음 경로 백슬래시(.\)를 표시합니다.

예를 들어 로컬 디렉터리에서 ServicesLog.ps1 스크립트를 실행하려면 다음을 입력합니다.

.\Get-ServiceLog.ps1

스크립트에 매개 변수가 있는 경우 스크립트 파일 이름 뒤의 매개 변수 및 매개 변수 값을 입력합니다.

예를 들어 다음 명령은 Get-ServiceLog 스크립트의 ServiceName 매개 변수를 사용하여 WinRM 서비스 활동 로그를 요청합니다.

.\Get-ServiceLog.ps1 -ServiceName WinRM

보안 기능으로, PowerShell은 파일 탐색기 스크립트 아이콘을 두 번 클릭하거나 스크립트가 현재 디렉터리에 있는 경우에도 전체 경로 없이 스크립트 이름을 입력할 때 스크립트를 실행하지 않습니다. PowerShell에서 명령 및 스크립트를 실행하는 방법에 대한 자세한 내용은 about_Command_Precedence 참조하세요.

PowerShell을 사용하여 실행

PowerShell 3.0부터 파일 탐색기 스크립트를 실행할 수 있습니다.

"PowerShell로 실행" 기능을 사용하려면 다음을 수행합니다.

파일 탐색기 실행하고 스크립트 파일 이름을 마우스 오른쪽 단추로 클릭한 다음 "PowerShell로 실행"을 선택합니다.

"PowerShell로 실행" 기능은 필수 매개 변수가 없으며 명령 프롬프트에 출력을 반환하지 않는 스크립트를 실행하도록 설계되었습니다.

자세한 내용은 about_Run_With_PowerShell을 참조하세요.

다른 컴퓨터에서 스크립트 실행

하나 이상의 원격 컴퓨터에서 스크립트를 실행하려면 cmdlet의 FilePath 매개 변수를 Invoke-Command 사용합니다.

스크립트의 경로 및 파일 이름을 FilePath 매개 변수 값으로 입력합니다. 스크립트는 로컬 컴퓨터나 로컬 컴퓨터에서 액세스할 수 있는 디렉터리에 있어야 합니다.

다음 명령은 Server01 및 Server02라는 원격 컴퓨터에서 스크립트를 실행 Get-ServiceLog.ps1 합니다.

Invoke-Command -ComputerName Server01,Server02 -FilePath ` C:\Scripts\Get-ServiceLog.ps1

스크립트에 대한 도움말 보기

Get-Help cmdlet은 스크립트 및 cmdlet 및 기타 유형의 명령에 대한 도움말 항목을 가져옵니다. 스크립트에 대한 도움말 항목을 얻으려면 스크립트 Get-Help 의 경로 및 파일 이름 뒤에 입력합니다. 스크립트 경로가 환경 변수에 있는 Path 경우 경로를 생략할 수 있습니다.

예를 들어 ServicesLog.ps1 스크립트에 대한 도움말을 보려면 다음을 입력합니다.

get-help C:\admin\scripts\ServicesLog.ps1

스크립트를 작성하는 방법

스크립트는 단일 명령, 파이프라인을 사용하는 명령, 함수 및 If 문 및 For 루프와 같은 제어 구조를 포함하여 유효한 PowerShell 명령을 포함할 수 있습니다.

스크립트를 작성하려면 텍스트 편집기에서 새 파일을 열고, 명령을 입력하고, 파일 확장명을 가진 유효한 파일 이름으로 .ps1 파일에 저장합니다.

다음 예제는 현재 시스템에서 실행 중인 서비스를 가져오고 로그 파일에 저장하는 간단한 스크립트입니다. 로그 파일 이름은 현재 날짜부터 만들어집니다.

$date = (get-date).dayofyear get-service | out-file "$date.log"

이 스크립트를 만들려면 텍스트 편집기 또는 스크립트 편집기를 열고 다음 명령을 입력한 다음 이름이 지정된 ServiceLog.ps1파일에 저장합니다.

스크립트의 매개 변수

스크립트에서 매개 변수를 정의하려면 Param 문을 사용합니다. 설명 및 #Require 문을 제외하고 문은 Param 스크립트의 첫 번째 문이어야 합니다.

스크립트 매개 변수는 함수 매개 변수처럼 작동합니다. 매개 변수 값은 스크립트의 모든 명령에서 사용할 수 있습니다. 매개 변수 특성 및 명명된 인수를 포함한 함수 매개 변수의 모든 기능은 스크립트에서도 유효합니다.

스크립트를 실행할 때 스크립트 사용자는 스크립트 이름 뒤의 매개 변수를 입력합니다.

다음 예제에서는 ComputerName 매개 변수가 있는 스크립트를 보여줍니다Test-Remote.ps1. 두 스크립트 함수 모두 ComputerName 매개 변수 값에 액세스할 수 있습니다.

param ($ComputerName = $(throw "ComputerName parameter is required.")) function CanPing { $error.clear() $tmp = test-connection $computername -erroraction SilentlyContinue if (!$?) {write-host "Ping failed: $ComputerName."; return $false} else {write-host "Ping succeeded: $ComputerName"; return $true} } function CanRemote { $s = new-pssession $computername -erroraction SilentlyContinue if ($s -is [System.Management.Automation.Runspaces.PSSession]) {write-host "Remote test succeeded: $ComputerName."} else {write-host "Remote test failed: $ComputerName."} } if (CanPing $computername) {CanRemote $computername}

이 스크립트를 실행하려면 스크립트 이름 뒤의 매개 변수 이름을 입력합니다. 다음은 그 예입니다.

C:\PS> .\test-remote.ps1 -computername Server01 Ping succeeded: Server01 Remote test failed: Server01

Param 문 및 함수 매개 변수에 대한 자세한 내용은 about_Functions 및 about_Functions_Advanced_Parameters 참조하세요.

스크립트에 대한 도움말 작성

다음 두 가지 방법 중 하나를 사용하여 스크립트에 대한 도움말 항목을 작성할 수 있습니다.

  • 스크립트에 대한 Comment-Based 도움말

    주석에 특수 키워드를 사용하여 도움말 항목을 만듭니다. 스크립트에 대한 주석 기반 도움말을 만들려면 스크립트 파일의 시작 또는 끝에 주석을 배치해야 합니다. 주석 기반 도움말에 대한 자세한 내용은 about_Comment_Based_Help 참조하세요.

  • 스크립트에 대한 XML-Based 도움말

    cmdlet에 대해 일반적으로 생성되는 형식과 같은 XML 기반 도움말 항목을 만듭니다. 도움말 항목을 여러 언어로 번역하는 경우 XML 기반 도움말이 필요합니다.

스크립트를 XML 기반 도움말 항목과 연결하려면 다음을 사용합니다. ExternalHelp 도움말 주석 키워드입니다. ExternalHelp 키워드에 대한 자세한 내용은 about_Comment_Based_Help 참조하세요. XML 기반 도움말에 대한 자세한 내용은 Cmdlet 도움말을 작성하는 방법을 참조하세요.

종료 값 반환

기본적으로 스크립트는 스크립트가 종료되면 종료 상태를 반환하지 않습니다. 스크립트에서 종료 코드를 반환하려면 문을 사용해야 exit 합니다. 기본적으로 문은 .를 exit 반환합니다 0. 다른 종료 상태를 반환하는 숫자 값을 제공할 수 있습니다. 0이 아닌 종료 코드는 일반적으로 실패를 알 수 있습니다.

Windows에서는 허용된 [int]::MaxValue 사이의 [int]::MinValue 모든 수입니다.

Unix에서는 (0)과 [byte]::MaxValue (255) 사이의 [byte]::MinValue 양수만 허용됩니다. 256을 추가하여 범위 -255 의 -1 음수는 자동으로 양수로 변환됩니다. 예를 들어 . -2 로 변환됩니다254.

PowerShell에서 문은 exit 변수의 $LASTEXITCODE 값을 설정합니다. windows Command Shell(cmd.exe)에서 exit 문은 환경 변수의 %ERRORLEVEL% 값을 설정합니다.

숫자가 아니거나 플랫폼별 범위를 벗어난 인수는 값으로 0변환됩니다.

스크립트 범위 및 점 소싱

각 스크립트는 자체 범위에서 실행됩니다. 스크립트에서 만든 함수, 변수, 별칭 및 드라이브는 스크립트 범위에만 존재합니다. 스크립트가 실행되는 범위에서 이러한 항목 또는 해당 값에 액세스할 수 없습니다.

다른 범위에서 스크립트를 실행하려면 전역 또는 로컬과 같은 범위를 지정하거나 스크립트를 소스로 지정할 수 있습니다.

점 소싱 기능을 사용하면 스크립트 범위 대신 현재 범위에서 스크립트를 실행할 수 있습니다. 점 소스 스크립트를 실행하면 명령 프롬프트에서 입력한 것처럼 스크립트의 명령이 실행됩니다. 스크립트에서 만드는 함수, 변수, 별칭 및 드라이브는 작업 중인 범위에서 만들어집니다. 스크립트가 실행된 후 생성된 항목을 사용하고 세션에서 해당 값에 액세스할 수 있습니다.

스크립트 원본을 점 지정하려면 스크립트 경로 앞에 점(.) 및 공백을 입력합니다.

다음은 그 예입니다.

. C:\scripts\UtilityFunctions.ps1

또는

. .\UtilityFunctions.ps1

스크립트가 UtilityFunctions.ps1 실행되면 스크립트에서 만드는 함수와 변수가 현재 범위에 추가됩니다.

예를 들어 스크립트는 UtilityFunctions.ps1 함수와 변수를 $ProfileName 만듭니다New-Profile.

#In UtilityFunctions.ps1 function New-Profile { Write-Host "Running New-Profile function" $profileName = split-path $profile -leaf if (test-path $profile) {write-error "Profile $profileName already exists on this computer."} else {new-item -type file -path $profile -force } }

자체 스크립트 범위에서 스크립트를 UtilityFunctions.ps1 실행하는 경우 스크립트가 New-Profile 실행되는 동안에만 함수와 $ProfileName 변수가 존재합니다. 스크립트가 종료되면 다음 예제와 같이 함수와 변수가 제거됩니다.

C:\PS> .\UtilityFunctions.ps1 C:\PS> New-Profile The term 'new-profile' is not recognized as a cmdlet, function, operable program, or script file. Verify the term and try again. At line:1 char:12 + new-profile <<<< + CategoryInfo : ObjectNotFound: (new-profile:String) [], + FullyQualifiedErrorId : CommandNotFoundException C:\PS> $profileName C:\PS>

스크립트를 소스로 지정하고 실행하면 스크립트는 범위에서 New-Profile 세션에 $ProfileName 함수와 변수를 만듭니다. 스크립트가 실행된 후 다음 예제와 같이 세션에서 함수를 사용할 New-Profile 수 있습니다.

C:\PS> . .\UtilityFunctions.ps1 C:\PS> New-Profile Directory: C:\Users\juneb\Documents\WindowsPowerShell Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 1/14/2009 3:08 PM 0 Microsoft.PowerShellISE_profile.ps1 C:\PS> $profileName Microsoft.PowerShellISE_profile.ps1

범위에 대한 자세한 내용은 about_Scopes 참조하세요.

모듈의 스크립트

모듈은 한 단위로 배포할 수 있는 관련 PowerShell 리소스 집합입니다. 모듈을 사용하여 스크립트, 함수 및 기타 리소스를 구성할 수 있습니다. 모듈을 사용하여 다른 사용자에게 코드를 배포하고 신뢰할 수 있는 소스에서 코드를 가져올 수도 있습니다.

모듈에 스크립트를 포함하거나 스크립트 모듈을 만들 수 있습니다. 이 모듈은 전적으로 또는 주로 스크립트 및 지원 리소스로 구성된 모듈입니다. 스크립트 모듈은 .psm1 파일 확장자를 가진 스크립트일 뿐입니다.

모듈에 대한 자세한 내용은 about_Modules 참조하세요.

기타 스크립트 기능

PowerShell에는 스크립트에서 사용할 수 있는 많은 유용한 기능이 있습니다.

  • #Requires - 문을 사용하여 #Requires 지정된 모듈이나 스냅인 및 지정된 버전의 PowerShell 없이 스크립트가 실행되지 않도록 할 수 있습니다. 자세한 내용은 about_Requires 참조하세요.

  • $PSCommandPath - 실행 중인 스크립트의 전체 경로와 이름을 포함합니다. 이 매개 변수는 모든 스크립트에서 유효합니다. 이 자동 변수는 PowerShell 3.0에서 도입되었습니다.

  • $PSScriptRoot - 스크립트가 실행되는 디렉터리를 포함합니다. PowerShell 2.0에서 이 변수는 스크립트 모듈(.psm1)에서만 유효합니다. PowerShell 3.0부터 모든 스크립트에서 유효합니다.

  • $MyInvocation - 자동 변수는 $MyInvocation 시작 또는 "호출" 방법에 대한 정보를 포함하여 현재 스크립트에 대한 정보를 포함합니다. 이 변수 및 해당 속성을 사용하여 스크립트가 실행되는 동안 스크립트에 대한 정보를 가져올 수 있습니다. 예를 들어 . $MyInvocation MyCommand.Path 변수에는 스크립트의 경로 및 파일 이름이 포함됩니다. $MyInvocation. 줄에는 모든 매개 변수와 값을 포함하여 스크립트를 시작한 명령이 포함됩니다.

    PowerShell 3.0 $MyInvocation 부터 현재 스크립트를 호출하거나 호출한 스크립트에 대한 정보를 제공하는 두 개의 새 속성이 있습니다. 이러한 속성의 값은 호출자 또는 호출자가 스크립트인 경우에만 채워집니다.

    • PSCommandPath 에는 현재 스크립트를 호출하거나 호출한 스크립트의 전체 경로와 이름이 포함됩니다.

    • PSScriptRoot 에는 현재 스크립트를 호출하거나 호출한 스크립트의 디렉터리가 포함되어 있습니다.

    현재 스크립트에 $PSCommandPath 대한 정보를 포함하는 자동 변수와 $PSScriptRoot 달리 변수의 $MyInvocationPSCommandPathPSScriptRoot 속성에는 현재 스크립트를 호출한 스크립트에 대한 정보가 포함됩니다.

  • 데이터 섹션 - 키워드를 사용하여 스크립트의 Data 논리와 데이터를 구분할 수 있습니다. 데이터 섹션을 사용하면 지역화를 더 쉽게 만들 수 있습니다. 자세한 내용은 about_Data_Sections 및 about_Script_Internationalization 참조하세요.

  • 스크립트 서명 - 스크립트에 디지털 서명을 추가할 수 있습니다. 실행 정책에 따라 디지털 서명을 사용하여 안전하지 않은 명령을 포함할 수 있는 스크립트의 실행을 제한할 수 있습니다. 자세한 내용은 about_Execution_Policies 및 about_Signing 참조하세요.

참고 항목

  • about_Command_Precedence
  • about_Comment_Based_Help
  • about_Execution_Policies
  • about_Functions
  • about_Modules
  • about_Profiles
  • about_Requires
  • about_Run_With_PowerShell
  • about_Scopes
  • about_Script_Blocks
  • about_Signing
  • Invoke-Command

Toplist

최신 우편물

태그