PowerShell 스크립트에서 스크립트 코드를 재사용/ Import하려면 어떻게 해야 합니까?
이전 스크립트와 동일한 작업을 수행하는 PowerShell 스크립트를 작성해야 하는데 이번에는 XML 파일이 아닌 CSV 파일을 읽어야 합니다.두 스크립트에 필요한 공통 기능을 갖춘 PowerShell 스크립트를 생성하여 이 공통 스크립트 파일을 두 메인 파일에서 재사용할 계획입니다.
의 디렉토리에서 합니다.C:\
공통 파일 및 기타rd 3개 파티 라이브러리를 드라이브하여 보관합니다.D:\
드라이브:C:\script_1_folder\Script1.ps1
,C:\script_2_folder\Script2.ps1
공통 파일과 서드파티rd 라이브러리는D:\script_common
.
메인 파일에서 공통 파일을 호출하는 방법(경로를 얻는 방법, 공통 파일의 인스턴스를 만드는 방법 및 사용 방법)
와의 차이는 무엇입니까?
$script_path = $myinvocation.invocationname; $script_folder = split-path $script_path -parent; write-host $script_folder $script_name = split-path $script_path -leaf; $current_folder = [system.io.directory]::getcurrentdirectory() [system.io.directory]::setcurrentdirectory($script_folder) Set-Location $script_folder add-type -path ".\AlexFTPS-1.1.0\AlexPilotti.FTPS.Client.dll"
그리고.
$path = (split-path $MyInvocation.MyCommand.Path) $loggerPath = $path + "\Logger\release\Logger.ps1"; .$loggerPath; $logger = Logger; $logger.load($path + "\Logger\config\log4ps.xml","log.log");
그리고 내 문제와 관련하여 그것을 하는 가장 좋은 방법은 무엇인가?
Windows temp 폴더에 temp 폴더를 작성하려면 어떻게 해야 하나요?
Powershell의 공통 코드
포함할 코드를 다른 PS1 파일에 넣은 후 해당 파일을 "도트 소스"하여 현재 범위에 포함할 수 있습니다.
. D:\script_common\MyCode.ps1
그게 다예요.
모듈 사용방법
모듈을 해 볼 수 은 '모듈'을 사용할 수 .모듈을 사용하여Import-Module
sysloglet.Active Directory 。
Import-Module ActiveDirectory
이 경우 모듈의 이름만 필요합니다.모듈은 특별한 디렉토리에 있기 때문입니다.
자신의 에 Powershell이라는 을 ..psm1
이들 할 수 있는 합니다.일반적으로 이들 중 하나에서는 프리 플로팅 코드를 사용하지 않고 모듈을 Import하는 코드에서 사용할 수 있는 함수를 작성합니다.
임의의 장소에서 스크립트모듈을 Import하려면 풀패스를 사용합니다.
Import-Module D:\script_common\MyModule.psm1
모듈 패스
독자적인 모듈을 작성할 때는 오래된 장소에 보관하고 풀 패스로 참조할 수 있습니다(위와 같습니다).Powershell이 모듈을 찾는 위치도 몇 가지 있습니다.
$PSHome\Modules
(%Windir%\)시스템32\Windows PowerShell\v1.0\Modules) -- Windows 에 부속되어 있는 모듈용으로 예약되어 있습니다. 여기에 물건을 두지 마세요.$Home\Documents\WindowsPowerShell\Modules
(%UserProfile%\)문서\" PowerShellWindows PowerShell\")- %ProgramFiles%\Windows PowerShell\Modules -- 이 링크에는 기재되어 있지 않습니다.필요한 상태 설정 모듈(아마 시스템 전체에 적용되기 때문에)에 더 많이 사용되는 것 같습니다.
이것들은 디폴트입니다만, Powershell 에서는, 라고 하는 독자적인 환경 변수를 사용하고 있습니다.PSModulePath
어디를 봐야 할지 결정하다PATH
해당 변수에 자신의 폴더를 추가할 수 있습니다.
이를 통해 모듈을 자신의 위치에 유지할 수 있습니다.폴더 구성 방법 및 이름 지정 방법에 대한 자세한 내용은 링크를 참조하십시오.
서드파티제 모듈과 서드파티제의 모듈을 같은 장소에 보관하는 경우는 서드파티제의 기능에 따라 달라집니다.자체 모듈을 자체 위치에 설치하고 경로를 변경하거나 원하는 위치에 모듈을 배치할 수 있습니다.
Temp 폴더 생성
를 사용할 수 있습니다.TEMP
또는TMP
temp 폴더의 경로를 가져오기 위한 환경 변수입니다.Powershell에서 검색하려면$env:TEMP
또는$env:TMP
.
그 안에 만들 폴더의 고유한 이름을 생각해내야 합니다.이를 위한 한 가지 방법은 GUID를 사용하는 것입니다.
$dirName = [System.Guid]::NewGuid().ToString()
New-Item -Path "$($env:TEMP)\$dirName"
다음과 같이 스크립트를 닷소스할 수 있어야 합니다.
. "C:\script_common\script.ps1"
그 후 실행 중인 스크립트에서와 같이 모든 기능을 사용할 수 있습니다.
단, 일반적인 기능을 가진 모듈을 작성하는 것이 더 좋습니다.(여기서 스크립트 작성 방법:남자 블로그). (TLDR 버전: 함수를 psm1 파일에 저장, 모듈 경로에 저장, Import)Import-Module
, 이익)
폴더 작성 시:
New-Item C:\Temp\yourfolder -type directory
다음은 powershell에서 템플릿시스템을 작성하려는 시도입니다.https://github.com/kayasax/PowershellTemplate
템플릿 내의 태그를 사용하여 저장소에 저장한 기능을 재사용할 수 있습니다.예를 들어, 다음과 같습니다.
<include logging/log>
템플릿에서 스크립트로 변환할 때 함수 저장소의 로그 디렉토리에 있는 log.ps1 파일의 내용이 삽입됩니다.
언급URL : https://stackoverflow.com/questions/27138483/how-can-i-re-use-import-script-code-in-powershell-scripts
'sourcetip' 카테고리의 다른 글
CSS를 사용하여 HTML5 입력 자리 표시자 색상 변경 (0) | 2023.04.08 |
---|---|
HTML 선택 요소에서 선택 옵션을 기본값으로 공백으로 설정합니다. (0) | 2023.04.08 |
TextView에서 HTML을 표시하는 방법 (0) | 2023.04.08 |
PowerShell에서 $_는 무엇을 의미합니까? (0) | 2023.04.08 |
PowerShell에서 선을 끊는 방법 (0) | 2023.04.08 |