2013-07-22 2 views
0

텍스트 파일에 side-by-side 파일 경로와 파일 이름을 가져 오려고하므로 데이터베이스에 쉽게 삽입 할 수 있습니다. 나는 SO 주변의 다른 예제를 살펴 봤지만, 무슨 일이 벌어지고 있는지 이해하지 못했습니다. 예를 들어, 나는이 batch file to append file names to end of lines을 보았지만 1.5 년이 되었기 때문에 설명을 요구해서는 안된다고 생각했습니다.파일 이름 가져 오기 및 줄의 시작 부분에 추가

내가 가진 파일 경로는 텍스트 파일입니다. 그들은 다음과 같이 :

\\proe\igi_files\TIFFS\AD\1_SIZE_AD\1AD0019.tif

내가 그것을 같이하고 싶은 것은 이것이다 : 그래서

1AD0019.tif \\proe\igi_files\TIFFS\AD\1_SIZE_AD\1AD0019.tif

나는 데이터베이스에 삽입 할 수있다. 배치 파일을 통해 Windows에서이 작업을 수행하는 쉬운 방법이 있습니까?

+0

배치 파일을 쓸 때 무엇을 사용하고 있습니까? Powershell을 사용하고 있습니까? 또는이 파일은 DOS .bat 파일입니까? 또는 다른 것? 이것은 Powershell에서 아주 쉽게 할 수 있습니다. – mti2935

+0

내가 아는 바 때문에 DOS .bat 스타일을 사용하고있었습니다. Powershell에서 더 쉽게 할 수 있다면, 나는 배울 의향이 있습니다. – Kruug

답변

1

에 대한 간격이 작은 스크립트는 트릭을해야한다. 첫 번째 줄에는 모든 파일 경로가 들어있는 텍스트 파일의 이름을 지정하면됩니다.

$filelist="c:\temp\filelist.txt" 
foreach($L in Get-Content $filelist) {      
    $i = $L.length - $L.lastindexof('\') -1 
    $fname=$L.substring($L.length - $i, $i) 
    echo ($fname + ' ' + $L) 
} 

컴퓨터에 powershell이 ​​설치되어 있지 않은 경우 http://technet.microsoft.com/en-us/library/hh847837.aspx을 확인하십시오.

+0

매력처럼 작동하고 정말 빨리 달렸습니다. – Kruug

+0

쿨! Powershell은 이런 종류의 일에 정말로 편리합니다. '대답 '을 가져 주셔서 감사합니다. – mti2935

2

배치 파일이 필요하지 않습니다. 명령 줄에서 :

>"outputFile.txt" (for /f "usebackq eol=: delims=" %F in ("inputFile.txt") do @echo %~nxF %~dpF) 

그러나 파일 및 폴더 이름이 공백을 포함 할 수 있으므로 파일 이름이 끝나고 경로가 시작되는 위치를 확인하기가 어려운 경우도있을 수 있기 때문에 그 출력 형식이 위험합니다. 파일과 경로를 따옴표로 묶는 것이 좋습니다.

>"outputFile.txt" (for /f "usebackq eol=: delims=" %F in ("inputFile.txt") do echo "%~nxF" "%~dpF") 

배치 파일 내에서 완료되면 백분율을 두 배로 늘려야합니다.

@echo off 
>"outputFile.txt" (
    for /f "usebackq eol=: delims=" %%F in ("inputFile.txt") do echo "%%~nxF" "%%~dpF" 
) 

FOR 명령의 기본 도움말을 읽어야합니다. 도움말을 보려면 명령 프롬프트에서 또는 for /?을 입력하십시오. 이 전략은 모든 명령에 대해 거의 작동합니다.

+0

여전히 두 번째 것을 계속 실행 중입니다. 어딘가에 묶여 있는지는 알 수 없지만 PowerShell 솔루션이 더 빨리 실행되므로 @ mti2935에'Answer' 상태를 부여했습니다. – Kruug

0
@ECHO OFF 
SETLOCAL 
(
FOR /f "delims=" %%i IN (yourfile.txt) DO ECHO %%~nxi %%i 
)>newfile.txt 
GOTO :EOF 

없음 큰 드라마 - 하나 개의 활성 라인에있는 모든하지만 명확

PowerShell에서
+0

잘 작동하지 않았습니까? 'yourfile.txt' 만 newfile에 넣습니다. 'yourfile.txt' 안의 파일 경로를 실제로 파싱하지 않았습니다. – Kruug

+0

@Kruug는'yourfile.txt'를 큰 따옴표'' "로 묶지 마십시오. 코드를 그대로 사용하십시오. – Endoro

관련 문제