그래서 삭제 항목 한 줄을 업그레이드하고 싶었습니다. 기본 파일 경로(\HQDEVAPP004\C$\LoneStar\ProcessorHandlers\Test)를 스크립트 상단에 정의된 2개의 변수로 나누고 싶습니다. 다음과 같은 것 :
- $rootdir = "\HQDEVAPP004\C$\LoneStar"
- $svcdir = {여기에 서비스 이름 삽입}(예: 메시지 라우터, 프로세서 핸들러)
그런 다음 전체 디렉터리 경로인 세 번째 변수를 만듭니다. 이 변수는 1 + 2를 함께 묶는 것입니다. "+" 연산자를 사용하여 수행할 수 있습니다. 제가 틀렸다면 정정해 주시기 바랍니다.
아이디어는 결국 foreach 루프를 실행하여 svcdir 경로를 가져와 설정하고, 파일을 삭제하려는 전체 디렉터리 경로를 동적으로 연결하고, 삭제 프로세스를 실행한 다음 이동할 수 있다는 것입니다. 다음 서비스 폴더로 이동합니다. 제가 설명한 것이 맞기를 바랍니다. 혹시라도 제가 사용했던 한 줄을 보고 싶다면 아래에 적어두겠습니다.
Get-ChildItem -recurse \\HQDEVAPP004\C$\LoneStar\ProcessorHandlers\Test\*.* | Remove-Item
답변1
우선, Remove-Item
와일드카드를 허용하는 Path 및 LiteralPath 속성이 있으므로 현재 하나의 라이너는 이미 없이도 작동합니다.Get-ChildItem
Remove-Item \\HQDEVAPP004\C$\LoneStar\ProcessorHandlers\Test\*.* -Recurse -Force
Join-Path
"함께 붙이기"에 대해서는 또는 Format 연산자 중 하나를 제안합니다 -f
.
Join-Path
예(이 경우 백슬래시에 대해 걱정할 필요가 없습니다):
PS C:\> $rootdir = "\\HQDEVAPP004\C$\LoneStar"
PS C:\> $svcdir = "Message Router"
PS C:\> Join-Path $rootdir $svcdir
\\HQDEVAPP004\C$\LoneStar\Message Router
-f
예( {0}
제공한 인수가 배치될 위치에 유의하세요):
PS C:\> $rootdir = "\\HQDEVAPP004\C$\LoneStar\{0}"
PS C:\> $svcdir = "Message Router"
PS C:\> $rootdir -f $svcdir
\\HQDEVAPP004\C$\LoneStar\Message Router
Remove-Item
그렇습니다. 모든 경로에 대해 탐색하고 접착 작업을 수행할 수 있지만 배열을 처리할 수 있으므로 원하는 모든 경로를 직접 제공할 수도 있습니다 .
cd "\\HQDEVAPP004\C$\LoneStar"
Remove-Item ".\Message Router\*.*",".\SomeOtherPath" -Recurse -Force