디렉토리 목록에는 수정된 날짜, 텍스트 파일/엑셀 파일의 파일 크기가 포함됩니다.

디렉토리 목록에는 수정된 날짜, 텍스트 파일/엑셀 파일의 파일 크기가 포함됩니다.

모든 날짜와 파일 크기가 포함된 단일 텍스트 파일에 전체 드라이브(Z:) 디렉터리, 하위 디렉터리 및 파일을 나열하고 싶습니다. 그런 다음 Excel에서 파일을 열 수 있습니다.

현재 다음 명령을 사용하고 있습니다.

dir z:\ /s /o:gne >text.txt

모든 파일과 하위 디렉터리가 하나로 쌓이고 별도로 나열되지 않는 tree 명령을 사용하여 일반적으로 얻는 것과 유사한 출력을 얻을 수 있는 방법이 있습니까?

시간 등 불필요한 정보를 삭제하려면 어떻게 해야 하나요? 입력해야 하나요?

답변1

powershell ls -r -fo Z:\ ^|?{!$_.PSIsContainer}^|Select DirectoryName,Name,BaseName,Extension,Length,CreationTime,LastAccessTime,LastWriteTime ^|epcsv Z:\excel.csv -En  UTF8 -NoType -Delim ';'
  • ^|- ^- cmd의 마스크 트랜스포터/파이프 기호, |- 파이프 객체
  • $_- 파이프라인의 현재 개체에 대한 변수입니다. 견본:

    powershell 'a','B','c','d','F' ^|%{if($_.toLower() -gt 'b'){write $_}}
    
  • ?= - 확인은 디렉터리 주기 where가 아닙니다.?{!$_.PSIsContainer}{}

  • ls -r- 모든 파일을 가져오고 모든 하위 디렉터리와 현재 디렉터리를 가져옵니다.

  • -fo= -force- 숨겨진 시스템 및 읽기 전용 속성 파일 목록에 추가
  • 'Z:\' - 'Z:'를 사용하는 경우 디렉토리 경로 - Z: cd에 현재 디렉토리를 설정합니다.

  • selectls- 파이프 객체 에서 속성을 선택합니다.

  • epcsv= Export-Csv- PowerShell 개체를 구분된 값(CSV) 파일로 내보냅니다.

  • -En= -Encoding- 인코딩 문자열 내보낸 CSV 파일의 인코딩입니다. 유효한 값은 유니코드, UTF7, UTF8, ASCII, UTF32, BigEndian 유니코드, 기본값 및 OEM입니다. 기본값은 ASCII입니다.
  • -NoType= -NoTypeInformation- CSV 파일에서 유형 정보를 생략합니다.
  • -Delim ';'- -Delimiterchar 속성 값을 구분하는 구분 기호입니다. 기본값은 쉼표(,)입니다. 콜론(:) 등의 문자를 입력하세요. 세미콜론(;)을 지정하려면 따옴표로 묶어야 합니다.

결과: 여기에 이미지 설명을 입력하세요

답변2

위에서는 내가 찾은 디렉터리 이름에 공백과 관련된 문제가 있습니다. 내 경험상 이 기본 powershell 명령이 더 잘 작동합니다.

Get-ChildItem -r "Z:\" | select DirectoryName,Name,Extension,CreationTime,AccessTime,LastWriteTime | Export-Csv -Append -Path "Z:\export.csv" -En UTF8 -NoType -Delim ','

추가로 구분 기호 ";"를 사용합니다. 이는 Excel에 혼동을 주고 이를 ","로 변경하면 Excel에서 데이터를 추가로 조작하지 않고도 내보낸 CSV를 열 수 있음을 의미합니다.

관련 정보