Powershell 1.0에서 이상한 일이 발생했습니다. Powershell이 어떻게 반응하는지 이해할 수 없습니다.내부 논리가있는 Powershell 문제
상황 : 나는 편지 전자에 의해 드라이브에 여러 zip 파일을 만들었습니다
는 지금은 그들 모두를 삭제합니다. 그러나 내 e : 드라이브에는 더 많은 zip 파일이 있습니다. 그래서이 특정 폴더 및 해당 하위 폴더에있는 파일 만 삭제하려고합니다.나는이에 사용할 명령은 다음과 같습니다 \ 테스트 :
PS E:\> Get-ChildItem -Path E:\Webdev\icons\ -Include *.zip -Recurse -Name -Force | Remove-Item -Force
그러나, 실행시, 나는 모든
이 경로 E를 찾을 수 없다는 오류의 한 무리를 얻을. 지퍼가 있기 때문에 존재하지 않습니다.
실제로 test.zip 파일은 e 아래에 있습니다. 스크립트를 넘겨주는 아이콘 폴더 아래에 존재합니다.
해결 방법은 아이콘 폴더로 디렉토리를 변경하고 거기에서 명령을 실행하는 것입니다.
그러나 이것은 논리적이지 않습니다. 파일을 삭제해야하는 디렉토리를 말하면 파일 만 삭제해야합니다. Powershell이 현재 디렉토리에서 파일을 찾기 시작한 이유는 나에게 수수께끼입니다.
아무에게도 설명해 주시겠습니까?
+1 사실 내 솔루션 인 –
보다 효과적이며 간단합니다. 트릭을 수행했습니다. 그 특정 매개 변수가 결과에 어떻게 영향을 미치는가는 이상합니다. – KdgDev
매개 변수는 FileInfo 개체 대신 문자열을 반환하도록 cmdlet에 지시합니다. Remove-Item은 FileInfo를 가져올 때 제거 할 항목을 찾을 수있을 정도로 똑똑하지만 문자열로만 경로 이름을 지정할 수 있습니다.그것들은 당신이 지정한 경로와 관련이 있기 때문에 추측 할 수 있습니다. -Name 매개 변수는 아마도 표시 용으로 만 존재합니다. 그러나 객체 사용은 파이프 라인에서 훨씬 쉽습니다. – Joey