2014-01-25 5 views
1

나는 파일이 있습니다
Y : \ a.txt이
Y : \ 읽기 텍스트 파일 내용

b.txt를 내가 가진 x.bat :

@echo off 
y: 
cd \ 
for /f %%f in ('dir /b y:\*.txt') do ( 
set content= 
set /p content=<y:\%%f 
echo y:\%%f 
echo content=%content% 
) 

및 결과 :

y:\a.txt 
content= 
y:\b.txt 
content= 

왜 함유량 % % 변수 텍스트 파일의 첫 번째 거짓말을 포함하지 않는 이유는 무엇입니까? 파일이 비어 있지 않습니다. 다음과 같이

+2

당신은 [설정하지 않음 Windows 배치 변수]의 루프 – foxidrive

+0

가능한 중복 (http://stackoverflow.com 내에서 변수를 사용하는 지연 확장이 필요합니다

출력의 라인을 따라입니다/question/9681863/windows-batch-variables-wont-set) – Joey

+0

아니요. 처음에 setlocal enabledelayedexpansion을 입력하면 작동하지 않습니다. Ruselts는 동일합니다 ... – gkovacs

답변

0

은 배치 스크립트를 수정

@echo off 
setlocal enableDelayedExpansion 
y:\ 
cd \ 
set content= 
for /f %%f in ('dir /b *.txt') do ( 
set /p content=<%%~dpff 
echo file:%%~dpff , content:!content! 
) 

편집을. 파일 경로를 얻으려면 ~dpf에 유의하십시오. @foxidrive가 언급했듯이 적절한 경로 없이는 작동하지 않았을 것입니다.

 
file:y:\a.txt , content:lorem 
file:y:\b.txt , content:ipsum 
file:y:\c.txt , content:Ocaml, Haskell 
+0

그건 작동하지 않습니다. – foxidrive

+0

작동하지 않습니다. 시스템이! gkovacs