Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Spalte einer Textdatei mit einer anderen Zahl überschreiben

Frage Entwicklung Batch & Shell

Mitglied: THRILLER

THRILLER (Level 1) - Jetzt verbinden

13.11.2014 um 21:23 Uhr, 800 Aufrufe, 2 Kommentare

Hallo zusammen,

ich habe eine Textdatei mit den Namen "Info1.txt, Info2.txt, ... Info100.txt".
Dabei hat jede Textdatei pro Zeile 3 Zahlen getrennt durch einen Tab.

1.44 23.22 0.00
2.21 21.12 0.00
.. ... ...

Wäre es anhand eines Batch Befehls möglich die Nullen durch eine 0.5 und dann bei Info2.txt die Zahl 1, Info3.txt die Zahl 1.5 zu ersetzen. Also pro Textdatei jeweils um 0.5 höher?

Freue mich um jede Hilfe!

Gruß
Mitglied: Crusher79
13.11.2014, aktualisiert um 22:05 Uhr
Hi,

habe jetzt kein fertiges Skript zur Hand. Nur als Anstoß:
https://findandreplace.codeplex.com/

Das Tool ist recht mächtig. Bsonders weil es automatisch Zeichenkodierung erkennt und innerhalb der Dateien auch mit Regulären Ausdrücken arbeiten kann. Damit kannst du dir also eine Batch mit aufbauen.

Wenns wirklich nur einmalig ist und jetzt erstmal rein für den Inhalt: http://www.digitalvolcano.co.uk/textcrawler.html

Auf Ordner zeigen, Regulären Ausdruck erstellen und los gehts. Das Tool macht hunderte von Operationen in zig Dateien in ein paar Sekunden bis Minuten.

Für die Umbenennung ginge natürlich Batch mit einer Schleife. Sehr mächtig zum umbennenn ist Bulk Renmae Utility: http://www.bulkrenameutility.co.uk/Screenshots.php

Hier gehts sofort - aber mti 2. Schritten: Start bei 5, Pad bei 2 und Incr. bei 5.

Man erhällt sofort 05, 10, 15, 20, 25 .... Der zweite Schritte wäre dann den Punkt zu sezen.


Das hat jetzt natürlich nix mit Skripten zu tuen. Aber zumindest siehst du dort z.B. auch, wie sich Reg. Ausdrücke auswirken. Ggf. kannst du dir damit in Zukunft andere Sachen erleichtern.

Mit freundlichen Grüßen Crusher

PS: In einen Rutsch sollte es auch gehen! Ist schon spät, sorry. Du kannst beim BRU auch mehrere kombinieren. Mir fällt nur gerade nix sinnvolles ein. Wenn du die Zahlen durch "0." ersetzt passt das genau für die erste Datei: 0.5. Bei den anderen hätte man wieder ß.10, 0.15 ... Probier mal selber. Oder mach 2 Durchläufe.
Bitte warten ..
Mitglied: rubberman
14.11.2014 um 00:12 Uhr
Hallo THRILLER,

sollte etwa so funktionieren:
01.
@echo off &setlocal EnableDelayedExpansion 
02.
 
03.
set "tmpfile=%tmp%\tmp.txt" 
04.
 
05.
for %%i in ("Info*.txt") do ( 
06.
  set "basename=%%~ni" 
07.
  set /a "num=!basename:Info=! * 50 + 1000000" 
08.
  set /a "begin=!num:~,-2! %% 10000" 
09.
  >"%tmpfile%" (for /f "usebackq tokens=1,2" %%j in ("%%~i") do echo %%j	%%k	!begin!.!num:~-2!) 
10.
  move /y "%tmpfile%" "%%~i" 
11.
)
Grüße
rubberman
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Per Batch Datei die Zahl jede Zell in einer Spalte um 10 verkleinern (12)

Frage von ha5257 zum Thema Batch & Shell ...

Windows 7
Script zum Überschreiben eines USB Sticks (11)

Frage von ThomasKern zum Thema Windows 7 ...

Batch & Shell
gelöst Powershell - In Textdatei suchen und ersetzen (5)

Frage von Raaja89 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Windows Server
Kennwort vergessen bei Hyper vserver 2012r (12)

Frage von jensgebken zum Thema Windows Server ...

Linux Desktop
Bildschirmauflösung unter Linux festlegen (12)

Frage von itebob zum Thema Linux Desktop ...

Windows Userverwaltung
gelöst Administrator hat alle Rechte verloren (10)

Frage von mrdead zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Gebäude mit WLAN ausstatten (9)

Frage von udobec zum Thema LAN, WAN, Wireless ...