Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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
GELÖST

Suchen und Ersetzen per Batch (variable Dateinamen, feste Strings)

Frage Entwicklung Batch & Shell

Mitglied: frysee

frysee (Level 1) - Jetzt verbinden

25.09.2008, aktualisiert 26.09.2008, 8499 Aufrufe, 5 Kommentare

Hallo allerseits,
nachdem ich schon ziemlich lange am mitlesen bin und immer wieder nützliche Codeschnipsel und Tipps gefunden hab, hab ich heut mal selbst ne Frage... bzw. wahrscheinlich eher nen Anfängerproblem

Problemstellung:
In einer unserer Abteilungen werden NC-Files verarbeitet, die Steuerdaten für entsprechende Maschinen enthalten. Ein solches Steuerkommando ist beispielsweise "M51". Nun benötige ich einen codeschnipsel, der mir im Unterordner /Files in allen Dateien das Steuerkommando "M51" duch "M7" und "M52" duch "M9" ersetzt.

Da ich nicht der absolute Batch-Experte bin, hab ich mir inzwischen aus verschiedenen Quellen Befehle zusammengesucht, außerdem läuft das Ganze über AEdit, sprich ich benötige lediglich die Übergabe der Dateinamen an den Editor - und genau daran scheitert es noch.

Hier mal der Code in seiner momentanen Form, ich hoffe mir kann jemand meinen Fehler zeigen:
[code]
@echo off & setlocal
set "Ordner=Files"
set "Typ=i"
cd /d "%Ordner%"
for %%f in (*.%Typ%) do call :ProcessFile "%%f"
goto :eof
:ProcessFile
echo "%%f"
echo qi "%%f" /rM51M7qe | aedit
echo qi "%%f" /rM52M9qe | aedit
[/code]

greetz
Mitglied: Wolfsrudel
25.09.2008 um 13:04 Uhr
Die set-Anweisung für "Ordner" sieht falsch aus...

Versuche mal das ganze mit

set Ordner=Absoluter\Pfad\zu\Ordner\Files

Nur mit "Files" an sich, wird er nicht wisse, wo das Verzeichnis liegt bzw. wird vom Wurzelverzeichnis des Batches ansetzen und sollte das Batch nicht im Verzeichnis liegen, in dem sich "Files" befindet, natürlich selbigen nicht auffinden.
Bitte warten ..
Mitglied: frysee
25.09.2008 um 13:31 Uhr
genau so siehts aber aus, Batch und der Ordner "Files" liegen im selben Verzeichnis...
Es scheint eher an
[code]
echo qi "%%f" /rM51M7qe | aedit
[/code]
zu scheitern, weiß jemand Rat?

greetz
Bitte warten ..
Mitglied: frysee
26.09.2008 um 09:34 Uhr
weiß niemand rat? ich bräuchte das skript relativ zeitnah und komm nicht wirklich zu einem ergebnis...

greetz
Bitte warten ..
Mitglied: bastla
26.09.2008 um 15:19 Uhr
Hallo frysee!

Soferne es nicht "aedit" sein muss, könnte folgender Batch genügen:
01.
@echo off & setlocal 
02.
set "Ordner=Files" 
03.
set "Typ=i" 
04.
 
05.
set R=%temp%\Replace2.vbs 
06.
>%R%  echo F=WScript.Arguments(0):Set fso=CreateObject("Scripting.FileSystemObject"):T=fso.OpenTextFile(F).ReadAll 
07.
>>%R% echo fso.CreateTextFile(F,True).Write Replace(Replace(T,"M51","M7"),"M52","M9") 
08.
 
09.
for %%f in ("%Ordner%\*.%Typ%") do cscript //nologo %R% "%%f"
Bitte zunächst nur auf Testdaten "loslassen", da die Änderung in der jeweiligen Datei ohne Erstellung einer Sicherungskopie erfolgt.
Noch eine Anmerkung: Wie bereits von Wolfsrudel empfohlen, würde auch ich eher einen vollständigen Pfad angeben, also etwa:
01.
set "Ordner=D:\NC-Test\Files"
Grüße
bastla
Bitte warten ..
Mitglied: frysee
26.09.2008 um 18:06 Uhr
Hab das ganze inzwischen in den Griff bekommen indem ich die Datei vor dem durchsuchen umbenenne und ins root-verzeichnis von AEdit verschiebe... scheinbar mag das script weder Bindestriche noch Ordnerstrukturen

greetz
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst In einer Batch variable die Datei extension ermitteln ? (4)

Frage von Kriegstreiber zum Thema Batch & Shell ...

Batch & Shell
gelöst Suchen ersetzen mit Sonderzeichen (2)

Frage von GNLen1 zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien (PDF) umbenennen via batch, teilw. Dateinamen übernehmen, neues Präfix (6)

Frage von brause1701 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von 126594 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(3)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (41)

Frage von Datsspeed zum Thema Exchange Server ...

Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Off Topic
gelöst Fachzeitschriften als E-Book oder hardcoded? (11)

Frage von KowaKowalski zum Thema Off Topic ...

Windows 10
Windows Store Apps ohne Windows Store installieren (10)

Frage von keefien zum Thema Windows 10 ...