de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Deniz Zoeteman
Deniz Zoeteman
Question

Batch / Temukan Dan Edit Baris dalam file TXT

Saya ingin membuat batch sementara yang menemukan baris tertentu dalam file batch dan dapat mengedit baris ini.

Contoh:

//TXT FILE//

ex1
ex2
ex3
ex4

saya ingin membiarkan file batch menemukan 'ex3' dan mengedit ini menjadi 'ex5' agar terlihat seperti ini:

ex1
ex2
ex5
ex4
25 2009-07-12T07:53:53+00:00 3
Pemrograman
batch-file
text-files
find
edit
lines
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
Solution / Answer
 ghostdog74
ghostdog74
12 Juli 2009 в 8:30
2009-07-12T08:30:23+00:00
Lebih
Sumber
Sunting
#9253555

Pada instalasi Windows asli, Anda dapat menggunakan batch (cmd.exe) atau vbscript tanpa perlu mendapatkan alat eksternal. Berikut'contoh dalam vbscript:

Set objFS = CreateObject("Scripting.FileSystemObject")
strFile = "c:\test\file.txt"
Set objFile = objFS.OpenTextFile(strFile)
Do Until objFile.AtEndOfStream
    strLine = objFile.ReadLine
    If InStr(strLine,"ex3")> 0 Then
        strLine = Replace(strLine,"ex3","ex5")
    End If 
    WScript.Echo strLine
Loop    

Simpan sebagai myreplace.vbs dan pada baris perintah:

c:\test> cscript /nologo myreplace.vbs  > newfile
c:\test> ren newfile file.txt
Chris  van Chip
Chris van Chip
Jawaban edit 2 November 2018 в 3:01
30
0
 RobW
RobW
15 Juli 2009 в 2:49
2009-07-15T02:49:29+00:00
Lebih
Sumber
Sunting
#9253556

Tidak ada fungsi pencarian dan penggantian atau pengeditan stream pada baris perintah di XP atau 2k3 (tidak tahu tentang vista atau lebih). Jadi, Anda harus menggunakan skrip seperti yang diposting Ghostdog, atau alat yang mampu mencari dan mengganti seperti sed.

Ada lebih dari satu cara untuk melakukannya, seperti yang ditunjukkan oleh skrip ini:

@echo off
    SETLOCAL=ENABLEDELAYEDEXPANSION

    rename text.file text.tmp
    for /f %%a in (text.tmp) do (
        set foo=%%a
        if !foo!==ex3 set foo=ex5
        echo !foo! >> text.file) 
del text.tmp
Chris  van Chip
Chris van Chip
Jawaban edit 11 November 2017 в 5:41
14
0
 nik
nik
12 Juli 2009 в 8:12
2009-07-12T08:12:54+00:00
Lebih
Sumber
Sunting
#9253554

Ini adalah jenis hal yang dibuat untuk sed (tentu saja, Anda memerlukan sed pada sistem Anda untuk itu).

sed 's/ex3/ex5/g' input.txt > output.txt

Anda akan membutuhkan sistem Unix atau platform semacam Windows Cygwin untuk ini.
Ada juga GnuWin32 untuk sed. (Instalasi dan penggunaan GnuWin32).

 nik
nik
Jawaban edit 12 Juli 2009 в 8:18
5
0
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Asilbek Qadamboyev
Terdaftar 7 jam yang lalu
2
Akshit Mehta
Terdaftar 2 hari yang lalu
3
me you
Terdaftar 6 hari yang lalu
4
Никита иванов
Terdaftar 1 minggu yang lalu
5
Alex1976G_06
Terdaftar 1 minggu yang lalu
ID
JA
RU
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi