FOR
루프를 사용하여 파일 집합을 처리하려는 일부 코드가 있습니다. 파일을 처리하는 과정에서 파일을 읽는 루프가 FOR /F
이고 파일 이름을 기반으로 다른 파일에 데이터를 추가합니다.배치 파일에서 중첩 된 FOR 루프를 사용하는 방법
출력 파일 이름을 설정하려면 변수 확장을 지연 시켰습니다.
setlocal enabledelayedexpansion
for %%f in (DataFolder\*.Ext) do (
set POI=%%~f
set POI=!JbPOI:DataFolder\=!
set POI=!JbPOI:.Ext=!
for /f "tokens=1,2,3 delims=," %%a in ("%%~f") do (
set CX=%%a
set CY=%%b
set FN=%%c
echo !FN!,9,!CX!,!CY! >> "DataFolder\!POI!.tmp"
)
)
endlocal
변수 %%a
, %%b
및 %%c
가 값을 수신하지 않기 때문에이 코드는 작동하지 않습니다는 %%a
항상 있습니다
이
코드가 내가 처음으로 그것을 의도 한대로 모양을합니다입니다%%f
과 같은 값
이 문제에 대한 기사를 읽었으나 효과가있는 솔루션을 추출하지 못했습니다.
내가 몇 가지를 시도는, 아무도 지금까지 일하지 ...
- 루프 꺼낸 변수
%%a
명시 적으로 - 내부
FOR
%%j
을 만들 더미 외부 루프를 추가하고 그것을 서브 루틴을 만들어 - 내부
FOR
루프를 꺼내 별도의 배치 파일로 만들었습니다.
아무나 알려주세요. 어떻게 이것이 해결 될 수 있습니까? 아니면 반드시 해결되어야합니까?
가장 쉬운 해결책은 Python을 설치하고 Python 스크립트를 작성하는 것입니다. 또는 MS 배치 이외의 다른 언어. – ThiefMaster
파일'%% ~ f'의 내용을 읽거나 그 이름을 문자열로 사용하고 싶습니까? 지금은 문자열로 사용하고 있습니다. – npocmaka
%% f 파일을 읽어야합니다 ...이 방법으로 문자열로 처리하면 %% a가 항상 %% f와 같은 값을 갖는 이유를 설명하는 것이 좋습니다. 나는 더 많은 테스트를 할 예정이다 ... –