2013-05-17 3 views
3

아래의 for 루프에 설정 한 변수 myVar로 파일의 이름을 바꾸려고합니다. 문제는 이름 바꾸기가 작동하지 않는다는 것입니다. 아무도 왜 저에게 말할 수 있습니까? 귀하의 코드가 작동변수가있는 일괄 이름 바꾸기 파일

For /F %%A in ('"type tmpFile2.txt"') do set myVar=%%A 
ren file1.txt file2%myVar%.txt 

답변

0

, 어쩌면 문제는 tmpfile2.txt 내용 (토큰)로

아니면 변수 값에 공백이 있고 작동하지 않는 이유를 먹으 렴입니다

tmpfile2의 내용이 없으면 왜 작동하지 않는지 알 수 없습니다.

는 happenning 상황을 확인하기 위해이 방법을 시도해보십시오

For /F "delims= usebackq" %%# in ("tmpFile2.txt") do (Echo "myVar=%%#" & set "myVar=%%#") 
Echo Rename "file1.txt" "file2%myVar%.txt" 
Rename "file1.txt" "file2%myVar%.txt" 

아니면이 :

For /F "delims= usebackq" %%# in ("tmpFile2.txt") do (Rename "file1.txt" "file2%%#.txt") 
1

안녕하세요이 코드를 시도하십시오.

for /F "tokens=*" %%i in (myfile.txt) do (
    set %filename% = %%i 
    ren file1.txt file2%filename%.txt 
    ) 
+1

코드를 시험해보고 일부 테스트 코드를 대신 사용하십시오. – foxidrive

3

난 당신의 코드가 를 배치 내기 수있는 내부 이와 같은 괄호 :이 경우

if some == comparison (
    For /F %%A in ('"type tmpFile2.txt"') do set myVar=%%A 
    ren file1.txt file2%myVar%.txt 
) 

을, 당신은의 값을 얻기 위해 지연된 확장을 사용할 필요가 이었다 변수 블록 내부 수정 : 자세한 내용

setlocal EnableDelayedExpansion 
if some == comparison (
    For /F %%A in ('"type tmpFile2.txt"') do set myVar=%%A 
    ren file1.txt file2!myVar!.txt 
) 

이 다른 검색 "지연된 확장"사이트.

관련 문제