Thay đổi nội dung tệp txt với tập lệnh BAT


0

Tôi cần lấy một nội dung tệp văn bản và sắp xếp chúng vào một cột và lưu lại tệp.

Nội dung của tệp trông như thế này, tất cả trong một chuỗi ....

core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework2.jar:telephony-common.jar:mms-common.jar:android.policy.jar:services.jar:apache-xml.jar:sec_edm.jar:seccamera.jar:scrollpause.jar:stayrotation.jar:smartfaceservice.jar:abt-persistence.jar:secocsp.jar:sc.jar 

Tôi cần làm cho chúng trông như thế này trong một cột ...

core.jar:
core-junit.jar:
bouncycastle.jar:
ext.jar:
......etc

Và chỉ để làm cho mọi thứ trở nên khó khăn hơn đối với tôi, tôi không phải lúc nào cũng biết tên sẽ có trên văn bản. Tôi biết rằng sẽ luôn luôn có một dấu hai chấm phân cách tên. Vì vậy, có thể có một cách để kéo văn bản giữa các dấu hai chấm và lưu vào văn bản mới trong một cột duy nhất?

EDIT ** Hoặc, một kịch bản để thay đổi từ hàng sang cột sẽ hoạt động tôi nghĩ.

Thanks cho bất kỳ giúp bạn có thể cung cấp cho.


Windows lô, chúng tôi đang giả định? Tôi sẽ làm việc với một cái gì đó trong thời gian ngắn.
Wally

Câu trả lời:


0

Sử dụng mã này. Đầu vào là foo.txtvà đầu ra là foobar.txt. Tôi không hiểu cách đệ quy hoạt động trên biến %% b, nhưng nó thực hiện trên vỏ lệnh thông thường của Windows 7 Pro.

@echo off
setlocal enabledelayedexpansion
goto afterfunctions

REM http://stackoverflow.com/questions/5837418/how-do-you-get-the-string-length-in-a-batch-file
:trimstring <therestVar> <inputVar>
(
    setlocal EnableDelayedExpansion
    for /f "tokens=1,* delims=:" %%a in ("!%~2!") do (
        echo %%a
        REM echo %%b
        REM %%b is the rest of it. Now we need to call this function with just that string.
        call :trimstring result %%b
    )
)
(
    endlocal
    exit /b
)

:afterfunctions
for /f "delims=" %%x in (foo.txt) do set mystring=%%x
set thisstring=%mystring%
call :trimstring result mystring > foobar.txt
:eof
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.