Skocz do zawartości


tablety.pl
Zdjęcie

Plik wsadowy




  • Zamknięty Temat jest zamknięty
5 odpowiedzi w tym temacie

#1 Asia199

Asia199

    Second Rank

  • Na emeryturze
  • 115 postów
  • Płeć:Kobieta

Napisano 20 02 2010 - 00:18

Witam

Czy pomoże ktoś stworzyć plik wsadowy który będzie:
dodawał na końcu każdego wiersza znak: ; w pliku 1.txt
zmieniał wszystkie , w pliku 1.txt na .


Dziękuję pozdrawiam

#2 3oo

3oo

    Very Good Rank

  • Użytkownicy +
  • 944 postów
  • Płeć:Mężczyzna

Napisano 20 02 2010 - 10:34

A jaki jest powód, że musi to być akurat skrypt? Dlaczego nie może to być np. makro w wordzie?

O ile w pliku 1.txt nie ma pustych linii (tzn. jest tylko jeden enter po każdej linii), pierwszą część zadania - z wykorzystaniem pliku pośredniego 2.txt - można byłoby zapisać:
FOR /F "usebackq eol=; tokens=*" %%i IN (1.txt) DO echo %%~i;>>2.txt
del 1.txt
ren 2.txt 1.txt
del 2.txt


#3 Asia199

Asia199

    Second Rank

  • Na emeryturze
  • 115 postów
  • Płeć:Kobieta

Napisano 20 02 2010 - 10:54

bo chyba przy większej ilości pozycji jaką mam (1mln) to się word zawiesi
ale super ogólnie dodało mi na końcu każdego wiersza ; tylko czy jeszcze dałoby rade jakoś "," zamienić na inny znak też za pomocą .bat?

#4 Kolega Dudysa

Kolega Dudysa

    Good Rank

  • Na emeryturze
  • 700 postów
  • Płeć:Mężczyzna

Napisano 20 02 2010 - 11:46

bo chyba przy większej ilości pozycji jaką mam (1mln) to się word zawiesi
ale super ogólnie dodało mi na końcu każdego wiersza ; tylko czy jeszcze dałoby rade jakoś "," zamienić na inny znak też za pomocą .bat?


Jest kilka sposobów zmiany tekstu czy znaku w pliku txt, które widziałem w PowerShell, vbs, i skrypt BAT.
1) VBS:
How Can I Find and Replace Text in a Text File?. Przykład:

cscript replace.vbs "C:\Scripts\Text.txt" "Jim " "James "

2) PowerShell:

Get-Content C:\Plik.txt | ForEach-Object { $_ -replace "StartTekst", "NowyTekst" } | Set-Content C:\NowyPlik.txt

Tutaj należy zapisać zmianę w nowym pliku, ponieważ orginalny jest w tym momencie używany i konsola nie pozwala na zmianę "w biegu".

3) BAT:
DOS Batch - Find and Replace. Przykład użycia zmiany, ale w oknie wyjściowym cmd:

BatchSubstitute.bat "StaryTekst" NowyTekst C:\Plik.txt

Zapis zmian do nowego pliku:
BatchSubstitute.bat "StaryTekst" NowyTekst C:\Plik.txt > C:\NowyPlik.txt

Dołączona grafika

#5 Asia199

Asia199

    Second Rank

  • Na emeryturze
  • 115 postów
  • Płeć:Kobieta

Napisano 20 02 2010 - 13:04

vbs sobie poradził super dziękuje :)

#6 Kolega Dudysa

Kolega Dudysa

    Good Rank

  • Na emeryturze
  • 700 postów
  • Płeć:Mężczyzna

Napisano 20 02 2010 - 13:12

Jeszcze mi się przypomniało że jest narzędzie Fart. Pozwala zamieniać tekst w całej grupie plików, włącznie z przeszukaniem w podkatalogach.




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych