폴더에 csv 파일 집합에 대한 박쥐 스크립트


1

변수에 값을 저장하고 배치 스크립트를 사용하여 변수를 파일의 새 열로로드하는 방법은 무엇입니까?

위의 링크는 날짜 필드를 읽고 csv 파일의 모든 레코드에 기록하는 데 사용됩니다. 폴더의 csv 파일 집합에 대해이 작업을 수행하기를 원합니다. 아래는 요구 사항에 대한 스크립트입니다. 아래 스크립트에서 실수가 무엇인지 알고 싶습니다.

@echo off 
setlocal if exist three.txt del three.txt 
set cnt=1 rem get the date "01/12/15" 
for %%i in (*.csv) do ( 
if cnt>=1 ( 
for /f "skip=5 tokens=1-10 usebackq delims=," %%a in (type "%%i") do ( 
set _date=%%d 
goto :next 
) 
:next 
rem add the date to the end of every line and output to "three.txt" 
for /f "tokens=* usebackq" %%a in (type "%%i") do ( 
echo %%a,%_date%>> three.txt 
) 
) 
set /a cnt+=1 
) 
endlocal

답변:


0

폴더에있는 CSV 파일 집합에 대해이 작업을 수행하고 싶습니다.

다시 말하지만 배치 파일은 여러 가지 방법으로 손상되었습니다.

자신의 배치 파일을 디버깅하는 방법을 배워야합니다.

배치 파일을 디버깅하는 데 시간을 낭비하지 않고 배치 파일을 수정하는 것이 더 빠릅니다. 연결된 질문에 대답하다 새 질문에 대답 해주세요.

다음 배치 파일 (example.cmd)을 사용하십시오.

@echo off 
setlocal 
if exist three.txt del three.txt 
for /r %%i in (*.csv) do ( 
  call :process_file %%i
  )
goto :eof

:process_file
  echo processing %1
  for /f "skip=5 tokens=1-10 usebackq delims=," %%a in (`type %1`) do ( 
    set _date=%%d 
    goto :next 
  )
:next 
  rem add the date to the end of every line and output to "three.txt" 
  for /f "tokens=* usebackq" %%a in (`type %1`) do ( 
    echo %%a,%_date%>> three.txt 
    )
  ) 
endlocal

three.txt 대신 동일한 CSV 파일에 결과를 어떻게 써야합니까?

다음 배치 파일 (example.cmd)을 사용하십시오.

@echo off 
setlocal 
for /r %%i in (*.csv) do ( 
  call :process_file %%i
  )
goto :eof

:process_file
  echo processing %1
  for /f "skip=5 tokens=1-10 usebackq delims=," %%a in (`type %1`) do ( 
    set _date=%%d 
    goto :next 
  )
:next 
  rem add the date to the end of every line and output to "three.txt" 
  for /f "tokens=* usebackq" %%a in (`type %1`) do ( 
    echo %%a,%_date%>> three.txt 
    )
  )

  rem rename the file
  del %~nx1
  ren three.txt %~nx1 
endlocal

더 읽을 거리

  • Windows CMD 명령 줄의 A-Z 색인 - Windows cmd line과 관련된 모든 것에 대한 훌륭한 참고서.
  • 요구 - 다른 프로그램에서 하나의 배치 프로그램을 호출하거나 서브 루틴을 호출하십시오.
    • - 하나 이상의 파일을 삭제합니다.
  • / f 용 - 다른 명령의 결과에 대한 명령을 반복하십시오.
  • for / r - 루프 스루 파일 (하위 폴더 되풀이).
  • 고토 - 배치 된 프로그램이 분류 된 라인으로 점프하도록 지시하십시오.
  • 매개 변수들 - 명령 행 인수 (또는 매개 변수)는 일} 처리 스크립트로 전달되는 모든 값입니다.
  • - 파일 이름을 바꿉니다.
  • 유형 - 하나 이상의 텍스트 파일의 내용을 표시합니다.

감사합니다. @DavidPostill. 다른 방법으로 요청하는 것은 three.txt 대신 동일한 csv 파일에 저장하는 방법입니다.
user2500677

@ user2500677 질문을 계속 변경하지 마십시오. 이번에는 답변을 업데이트했습니다.
DavidPostill
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.