배치 스크립트를 사용하여 여러 폴더에있는 여러 텍스트 파일의 각 줄에있는 첫 번째 단어 편집

Fitri Idrus

여러 폴더에 여러 텍스트 파일이 있습니다. 각 텍스트 파일에서 다음으로 구성됩니다.

0 0.211328 0.386111 0.088281 0.197222
3 0.283984 0.319444 0.067969 0.161111
2 0.387109 0.514583 0.102344 0.112500

각 줄의 첫 번째 숫자를 0으로 수정하고 싶습니다.

0 0.211328 0.386111 0.088281 0.197222
0 0.283984 0.319444 0.067969 0.161111
0 0.387109 0.514583 0.102344 0.112500

지금까지 스택 오버플로를 살펴본 후이 스크립트를 사용하여 코드를 성공적으로 수행 할 수있었습니다.

@echo off
setlocal EnableDelayedExpansion
FOR /L %y IN (1,1,10000) DO IF EXISTS %y.txt (
    (for /F "tokens=1*" %a in (%y.txt) do (
        FOR /F %c IN ("!var:~0,1!") DO echo 0 %b 
        )
    )
) >%y_.txt

그러나 이것은 내 .txt 파일 이름이 숫자 인 경우에만 작동합니다. 하나의 폴더에서 수천 개의 텍스트 파일을 처리하고 있기 때문에 범위를 10000으로 설정했습니다. 그리고이 코드는 % y_.txt라는 이름의 새 텍스트 파일을 만들고, % y는 액세스 된 파일의 이름을 포함하고 파일 이름 혼동을 피하기 위해 _를 추가합니다.

동일한 이름의 이전 파일을 바꾸려면 새 텍스트 파일이 필요할 수 있지만 새 파일 이름으로 % y를 사용하면 작동하지 않습니다.

잠깐만 그게 아닙니다.

또한이 폴더의 상위 폴더에있는 다른 모든 .txt 파일을 편집해야 할 수도 있습니다. 트리 폴더는 다음과 같이 보입니다.

   D:
    ├───Folder-A
    │   ├───folder-1
    │   │   ├──1.txt
    │   │   ├──2.txt
    │   │   └──3.txt
    │   └───folder-2
    │       ├──a.txt
    │       └──b.txt
    │
    └───Folder-B
        ├───folder-x
        │   ├──8.txt
        │   ├──9.txt
        │   └──10.txt
        └───folder-y
            ├──y.txt
            └──z.txt

이전 코드는 특정 폴더 디렉토리에 있고 하위 폴더로 이동하지 않는 경우에만 작동합니다. 사용해 dir /b/s *.txt보았지만 어디에 넣어야할지 모르겠습니다.

누군가가 나를 도울 수 있기를 바랍니다. 그건 그렇고, 배치 스크립트를 사용하는 것은 이번이 처음이며 대학원 연습생으로서의 첫 번째 작업입니다. 도와 주셔서 감사합니다 : D

게르하르트

이것은 재귀 적으로 하위 디렉토리를 통해 모든 .txt파일을 찾고 각 줄의 첫 번째 항목을 다음으로 바꿉니다.0

@echo off
for /f "delims=" %%a in ('dir /b /s /a-d *.txt') do (
    for /f "tokens=1*" %%i in ('type %%~a') do (
     (echo 0 %%j)>>"%%~dpna.tm"
  )
   if exist "%%~dpna.tm" move /Y "%%~dpna.tm" "%%~fa"
 )

이것을 실행하기 전에 주의 하십시오! 이렇게하면 원본의 내용이 포함 된 임시 파일이 생성되고 관련 변경이 이루어지면 파일의 이름이 원본 (임시 파일에서)으로 변경되므로 테스트 환경에서 실행하지 마십시오. 더미 dir당신의 더미 디렉토리의 모든 요구 수준이 임시 텍스트 파일을 가지고는, 다른이는 함께 단어를 발생하는 모든 첫 번째 공백을 대체합니다0

스크립트를 실행하려는 디렉토리가 실행되는지 확인하기 위해 스크립트 pushd "C:\somedir"@echo offpopd끝에 추가 할 수도 있습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관