.bat
파일을 사용하여 매일 생성되는 CSV를 이동합니다. CSV 파일 정리
csv로는 20 선 모든 공간을 0
- 찾기 및 바꾸기 : 지금 그것을 정리해야 .
.bat
파일을 사용하여 매일 생성되는 CSV를 이동합니다. CSV 파일 정리
csv로는 20 선 모든 공간을 0
정말 필요한 것을 모릅니다. 이것이 당신을 위해 작동하지 않는다면 더 많은 것을 설명하십시오 :
for /f "delims=" %%a in (old.csv) do (
set "line=%%a"
setlocal enabledelayedexpansion
set "line=!line: =!"
set "line=!line:-=0!"
>> new.csv echo(!line!
endlocal
)
배치 파일은 이것을위한 좋은 도구가 아닙니다.
(Get-Content 'C:\path\to\in.csv') `
-replace ' ', '' `
-replace '-', '0' `
-replace '^,', '0,' `
-replace ',$', ',0' `
| % {
while ($_ -match ',,') { $_ = $_ -replace ',,', ',0,' }
$_
} | Out-File 'C:\path\to\out.csv'
또는 VBScript를 : 당신은 사용 PowerShell을 해제 훨씬 좋을 것 ...
Set fso = CreateObject("Scripting.FileSystemObject")
inFilename = "C:\path\to\in.csv"
outFilename = "C:\path\to\out.csv"
Set inFile = fso.OpenTextFile(inFilename)
Set outFile = fso.OpenTextFile(outFilename, 2, True)
outFile.WriteLine inFile.ReadLine 'write header
Do Until inFile.AtEndOfStream
line = inFile.ReadLine
line = Replace(line, " ", "")
line = Replace(line, "-", "0")
If Left(line, 1) = "," Then line = "0" & line
If Right(line, 1) = "," Then line = line & "0"
Do While InStr(line, ",,") > 0
line = Replace(line, ",,", ",0,")
Loop
outFile.WriteLine line
Loop
inFile.Close
outFile.Close
@ECHO OFF
SETLOCAL
(
FOR /f "delims=" %%i IN (yourfile.csv) DO (
SET "line=%%i"&CALL :process
)
)>newcsv.csv
GOTO :EOF
:process
SET line=%line: =%
SET line=%line:-=0%
SET line2=%line%
SET line=%line:,,=,0,%
IF NOT "%line%"=="%line2%" GOTO process
IF "%line:~0,1%"=="," SET line=0%line%
ECHO %line%
GOTO :EOF
이제 interweb 요정 마침내 다시 보드에 있습니다, 여기 내 버전의
도움을 주셔서 감사합니다. – user1870243
이 코드와 코드 답변을 시도했습니다. 내가 얻는 결과는 두 가지 모두에 대한 표식 = Coloumn입니다. 그래서 나는 틀린 일을 잘못하고 있거나 잘못 설명했을 것입니다. ID, C, 0 C, 0,198, mm, – user1870243
으로 변경하고 싶습니다. 미안 해요. 예를 들어, - IM, 198,0, 0, IM, 0,198,0 이하는 @ECHO OFF로 입력 한 코드입니다. SETLOCAL ( ) /f "delims ="%% i IN (recon_S21206.csv) DO ( SET "line = %% i"& PROCESS ) )> new.csv GOTO : EOF : 프로세스 세트 라인 = % 줄 = % 세트 라인 = % 선 - = 0 % 세트 호선 = % 행 : ,, = 0,! " "% line % "=="% line2 % "GOTO 프로세스가 아닌 경우 "% line : ~ 0,1 % "==", "SET 라인 = 0 % 라인 % ECHO % line % GOTO : % EOF – user1870243
http://blogs.technet.com/b/heyscriptingguy/archive/2005/02/08/how-can-i-find-and-replace-text-in-a-text-file.aspx - 아마도 가장 쉬운 방법입니다. . – npocmaka
일부 샘플 데이터는 엄청난 도움이 될 것입니다. 전후 양식을 보여줘야합니다. 그것이 그대로, 문자열의 길이가 얼마인지 묻는 중입니까? – Magoo