줄 바꿈이없는 파일 나열


1

나는 그 안에 일련의 폴더가있는 디렉토리를 가지고있다. 각 폴더에서 해당 폴더의 모든 파일을 나열하는 텍스트 파일을 만들겠습니다. 파일을 나열하는 형식은 다음과 같습니다.

"001.jpg" "002.jpg" "003.jpg" "004.jpg"

기본적으로 줄 바꿈이없는 파일을 나열해야합니다. Windows 7에서 cmd를 사용하면 어떻게됩니까?


ㅎ, 거기있어? xargs Windows 용 명령? Powershell을 사용하지 않습니까?
ewwhite

2
이것은 powershell 프로그래밍과 유사 해 보이는데, Windows 7을 사용하면 (서버 OS가 아닌) 더 나은 질문이 될 것입니다. 스택 오버플로 또는 수퍼 유저 .
Iain

CygWin을 설치하고 Windows를 언급하지 않고이 질문을 다시하십시오.

답변:


0

당신은 CMD 쉘만을 사용하여 원하는 결과를 얻을 수 있습니다. forfiles , ...에 대한 지연 변수 확장 (또한보십시오 : cmd ).

단계

  1. 배치 파일을 만듭니다 (예 : C:\jpglist.bat ) 다음 지시 사항을 저장하십시오.

    @echo off
    if %2 == FALSE exit
    cd /D %1
    for %%a in (*.jpg) do set list=!list! "%%a"
    echo %list:~1%> jpglist.txt
    
  2. 명령 프롬프트를 엽니 다.

  3. 실행

    forfiles /P PATH /S /C "cmd /V:on /C C:\jpglist.bat @path @isdir"
    

    어디에 통로 주 디렉토리의 전체 경로입니다.

  4. 배치 파일은 더 이상 필요하지 않습니다. 원하는 경우 삭제하십시오.

작동 원리

명령 :

  • forfiles /P PATH /S /C "..." 재귀 적으로 이동 함 ( /S ) ~을 통해 통로 및 하위 디렉토리 및 실행 ... 모든 디렉토리 항목에 대해.

  • cmd /V:on /C ... 지연된 변수 확장을 사용하는 새 셸을 엽니 다 ( /V:on )를 실행하고 ....

  • C:\jpglist.bat @path @isdir 배치 파일을 호출하고 첫 번째 매개 변수로 항목의 전체 경로를 전달합니다.

    @isdir 될거야 참된 만약 @path 디렉토리입니다; 그렇지 않으면 그릇된 .

배치 파일 :

  • if %2 == FALSE exit 첫 번째 인수가 디렉토리가 아닌 경우 즉시 종료됩니다.

  • cd /D %1 첫 번째 인수에 지정된 디렉토리로 변경됩니다 ( /D 필요할 경우 드라이브 스위칭 가능).

  • for %%a in (*.jpg) do set list=!list! "%%a" 와 모든 파일을 통해 간다. .jpg 확장명을 지정하고 변수에 이름을 추가합니다. 명부 .

    사용 !list! 대신에 %list% 변수의 확장을 지연 시키며, 명부 처음부터 한 번만 반복되는 것이 아니라 모든 반복에서 확장됩니다.

  • echo %list:~1%> jpglist.txt 변수의 내용을 쓴다. list (선두 문자가 될 첫 번째 문자 제외) jpglist.txt 현재 디렉토리에서.


0
ForEach($_ In Get-ChildItem "C:\Folder\" -Recurse -Directory)
{
    ForEach($file In Get-ChildItem -File $_.FullName)
    {
        [System.IO.File]::AppendAllText("$($_.FullName)\crazyList.txt", "`"$($file.Name)`" ", [System.Text.Encoding]::Unicode)
    }
}

이렇게하면 지정한 폴더와 정확히 일치하는 형식의 파일이 따옴표로 묶여 출력됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.