2011-08-19 5 views
0

이것이 가능한지 모르겠지만 txt 파일 (C : \ locations)에 포함 된 백 슬래시를 슬래시로 대체하는 배치를 만들고 싶습니다.배치를 사용하여 TXT 파일의 문자를 바꾸시겠습니까?

THX ..

편집 :

임 루프를 시도 :

set file=C:\text1.txt 
FOR /F %%i IN (%file%) DO (
set username=%%i 
echo (load "%%i") >> C:\text.txt 
) 

내가 지금까지 가지고하는 것은 :

set str1=!Var1! 
echo.%str1% 
set str1=%str1:\=/% 

가 함께 작동하도록

ECHO Retreving list of files... 
dir /s /b c:\ICT\AUTOCAD_2010\*.LSP > C:\BART1.txt 

Echo Looping variables... 
set file=C:\text1.txt 
FOR /F %%1 IN (%file%) DO (
set fred=%%1 
echo %%1 > C:\tempme.txt 
) 
set fred=C:\tempme.txt 
set fred=%fred:\=/% 
echo (load "%fred%") >> C:\text2.txt 

however this returns: 

(load "C:/tempme.txt") 

이것은 incorect입니다.

+0

당신은 창문 맞죠? –

+0

어떤 도구가 있습니까? 이것은 sed에 대한 직업처럼 들립니다. –

답변

1

Windows 'PowerSheel이 너무 제한적입니다. Perl과 같은 스크립팅 언어를 사용하는 것이 좋습니다. 또 다른 아주 좋은 방법입니다 Tichodroma에 의해 제안

my @file = <STDIN>; 
my $text = join('', @file); 
$text =~ s/\\/\//g; 
print($text); 

당신은 를 나오지도 사용

perl foo.pl <example.txt> result.txt 

처럼 실행할 수 있습니다 : 여기에 수행하는 빠른 스크립트입니다.

+0

자세한 내용은 편집을 참조하십시오. – milly

+0

이해가 안됩니다 ... – m0skit0

1

나는 당신이 정말로 원하는 것을 조금 혼란스럽게 생각합니다. 샘플 코드 FOR ... ININ()에 하나의 파일, 즉 %fred%의 파일 만 있습니다. 그런 다음 하나의 파일 이름을 임시 파일에 씁니다. 그런 다음 SET을 사용하면 백 슬래시를 임시 파일 이름에 슬래시로 바꿀 수 있습니다. 그러나 이것은 어떤 파일에도 닿지 않습니다.

그러나 개방 구간에서는 파일에서 슬래시를 슬래시로 교체하려고합니다. 그래서 저는 그 부분에 집중할 것입니다. 해당 하나의 백 슬래시를 대체

@ECHO OFF 

SETLOCAL EnableDelayedExpansion 

REM Here's a backslash: \ 

FOR /F "delims=" %%a IN ('TYPE %0') DO (
    SET line=%%a 
    ECHO !line:\=/! 
) 

가 단순이 작은 배치 파일 따라서, 자체 ( %0)를 분석하고 있습니다 : 즉,이 방법을 수행 할 수있다. 그러나 TYPE 옆에 파일을 두십시오.

EnableDelayedExpansion! 구문을 사용합니다 (지연 확장에 대한 자세한 내용은 SET /? 참조). TYPE은 분명히 파일을 콘솔에 씁니다. FOR /F "delims="은 이제 한 줄당 해당 줄의 출력을 가져옵니다 (delims=은 토큰 화기에 대한 구분 기호 없음을 FOR으로 정의하므로). 라인을 %%a과 함께 작동시키는 적절한 방법이 있다고 생각하지 않기 때문에 line- 변수가 필요합니다.

유일한 단점은 원본 파일에서 모든 빈 줄을 제거한다는 것입니다. 그게 너에게 문제가되는지 나는 모른다.

관련 문제