Top-Themen

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

Frage Entwicklung Batch & Shell

GELÖST

Dateinamen per batch ändern und bestimmte Zeichenanzahl entfernen und .txt anfügen

Mitglied: viking

viking (Level 1) - Jetzt verbinden

28.10.2010 um 12:32 Uhr, 10077 Aufrufe, 5 Kommentare

Hallo, wieder mal kleine Frage:

Habe folgendes Anliegen.
Ich erhalte aus einem System über ein Exportscpript, Dateien erzeugt.
Diese haben keine Dateiendung, sind aber im Prinzip Textdateien.
Nun möchte ich:
aus dem existierenden Dateinamen immer die ersten 25 Stellen entfernen, und an anschließend an den verbleibenden Rest die Endung ".txt" anfügen.
Beispiel:
Die Dateien befinden sich im Ordner:
C:\Test\
Name von Beispieldateien:
C:\Test\PPExport_28102010_115412.USER
C:\Test\PPExport_28102010_115412.GRUPPEN

Gewünscht:
C:\Test\USER.txt
C:\Test\GRUPPEN.txt

Wie kann ich das lösen?

Gruß viking
Mitglied: 60730
28.10.2010 um 12:55 Uhr
Moin,

streng genommen haben deine beiden Beispiele aber eine Suffix.... - nur keine mit der Winblows was anfangen kann.
daher zwei/drei Gegenfragen....

  • Sind das "echte" Beispiele oder sehen die "echt" anders aus?
  • Sind nur diese Dateien vorhanden?
  • Was passiert mit den schon gekürtzen dateinamen - bleiben die in dem Ordner?
(das könnte schwierig werden) möglicherweise Jacke wie Hose

Grob ungetester Demoschnippsel

01.
enable delayedexpansion 
02.
for /f "tokens=1,* delims=" %%a in ('dir /b C:\Test\*') do ( 
03.
	set filename=%%a 
04.
	if  not "!filename!"=="!filename:~-25!" echo ren !filename! !filename:~-25! 
05.
06.
pause
Der Macht nix - zeigt nur ein "was wäre wenn" an, wenn das gut aussieht, das echo vor dem Ren rausnehmen.

Gruß
Bitte warten ..
Mitglied: viking
28.10.2010 um 13:30 Uhr
Hallo,

da tut sich bei mir momentan noch nichts, außer vgl Ende
Suffix, na sollte doch eigentlich das sein, was nach dem "." steht welcher an Stelle 25 ist.
Der "Suffix" hat bei mir eine variable Länge.
Das Kann ich auch nicht beeinflussen, da die Daten über ein Exportscript aus einer Datenbankanwendung kommen und im Prinzip eine Tabelle mit Datendefinition exportiert wird.
Im Prinzip sind das schon echtes Beispiel.

Warum eine Textdatei.
Wenn ich auf manuellem Weg eine Datei nehme und so umbenenne und ein .txt anfüge habe ich eine TXT Datei.
Wenn ich die Ursprungsdatei mit dem Kontexytmenü öffne und den Ediotor auswähle, dann kann ich den Datei mit dem Editor öffnen.

Frage:
Wo definierst Du im Deinem Script die anzufügende Dateiendeung ".txt"?


C:\Test>enable delayedexpansion
Der Befehl "enable" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

C:\Test>for /F "tokens=1,* delims=" %a in ('dir /b C:\Test\*') do (
set filename=%a
if not "!filename!" == "!filename:~-25!" echo ren !filename! !filename:~-25!
)

C:\Test>(
set filename=PPExport_28102010_115412.USER
if not "!filename!" == "!filename:~-25!" echo ren !filename! !filename:~-25!
)
ren !filename! !filename:~-25!

C:\Test>(
set filename=PPExport_28102010_115412.GRUPPE
if not "!filename!" == "!filename:~-25!" echo ren !filename! !filename:~-25!
)
ren !filename! !filename:~-25!


C:\Test>pause
Drücken Sie eine beliebige Taste . . .

Gruß viking
Bitte warten ..
Mitglied: bastla
28.10.2010 um 14:59 Uhr
Hallo viking!

Wenn Du "immer die ersten 25 Stellen entfernen" auch als "immer alles bis zum ersten Punkt entfernen" formulieren könntest, dann etwa so:
for /f "tokens=1* delims=." %i in ('dir /b /a-d C:\Test\*.*') do @echo ren "%i.%j" "%j.txt"
Die Zeile ist zur Direkteingabe in der CMD-Shell gedacht und geht davon aus, dass nur Deiner Beschreibung entsprechende Dateien im Ordner "C:\Test" enthalten sind.

Durch das "echo" wird das Umbenennen nur simuliert, und falls Du später daraus einen Batch machen wolltest, wäre jedes %i bzw %j mit doppelten Prozentzeichen zu schreiben.

Grüße
bastla
Bitte warten ..
Mitglied: Biber
28.10.2010 um 14:59 Uhr
Moin viking,

bitte versuche es mal mit einer Änderung der ersten Zeile, die bei T-Mo etwas mundartlich abgeschliffen ist, in
Setlocal EnableDelayedExpansion
Klein-/GROSSschreibung ist egal, Hilfe zu dieser Direktive gibt es bei "setlocal /?" am CMD-Prompt.

Grüße
Biber

Um T-Mo in Schutz zu nehmen - ein handelsüblicher Oldenburger-Platt-Compiler könnte auch "enable delayedexpansion" richtig interpretieren.
Bitte warten ..
Mitglied: viking
29.10.2010 um 14:19 Uhr
Zitat von bastla:
Hallo viking!

Wenn Du "immer die ersten 25 Stellen entfernen" auch als "immer alles bis zum ersten Punkt
entfernen" formulieren könntest, dann etwa so:
for /f "tokens=1* delims=." %i in ('dir /b /a-d C:\Test\*.*') do @echo ren 
> "%i.%j" "%j.txt" 
> 
Die Zeile ist zur Direkteingabe in der CMD-Shell gedacht und geht davon aus, dass nur Deiner Beschreibung entsprechende Dateien im
Ordner "C:\Test" enthalten sind.

Durch das "echo" wird das Umbenennen nur simuliert, und falls Du später daraus einen Batch machen wolltest,
wäre jedes %i bzw %j mit doppelten Prozentzeichen zu schreiben.

Grüße
bastla


Hallo bastla,

wunderbar, die Variante tut als batch genau so wie ich will.

Danke viking
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Bestimmte Zeichen per Batch aus Dateinamen entfernen
gelöst Frage von wollebeeBatch & Shell6 Kommentare

Ich bekomme Dateien, bei denen ich automatisch per Batch den Dateinamen ändern möchte. Nun besteht der erste Teil des ...

Batch & Shell
Dateiname über Batch ändern
gelöst Frage von c64b311ee9Batch & Shell6 Kommentare

Hallo liebe Community, folgendes Problem!: Ich habe einen Ordner mit 500 PDF Dateien. Diese sind nach folgendem Schema aufgebaut. ...

Batch & Shell
CMD-Batch hilfe: Dateiname zu txt
Frage von Syscore64Batch & Shell2 Kommentare

Guten Abend, ich möchte eine batch datei erstellen mit den Funktion alle im Ordner befindeten Datein eine .txt erstellen ...

Batch & Shell
Punkte aus Dateinamen per Batch entfernen
gelöst Frage von Sommerpalme73Batch & Shell12 Kommentare

Hallo ihr Lieben, ich bin ziemlicher Anfänger und habe leider keine Ahnung von Skript-Sprache. Nun soll ich aber bei ...

Neue Wissensbeiträge
Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 3 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 8 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement21 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS10 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...