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
Kommentar vom Moderator Biber am 15.03.2012 um 10:53:03 Uhr
Batch-Datei Dateinamen umbennen
Set /a rgc+=1
#799
Zu 1. könnte ich mir mit einer if abfrage vorstellen und anschließend mit rename umbennen falls nötig
...oder mit dem Befehl umbennen renamen falls möglich...
set /a rg+=1
#800
Danke schonmal im Vorraus!
... und noch ein Tropfen, der dem Fass den Boden aufsetzt..

Batch-Datei Dateinamen umbenennen

Frage Entwicklung Batch & Shell

Mitglied: Hobelbank

Hobelbank (Level 1) - Jetzt verbinden

15.03.2012, aktualisiert 13:12 Uhr, 3101 Aufrufe, 12 Kommentare

Hallo Community,

ich habe hunderte Ordner mit *.xls Dateien mit unterschiedlichen Namen z.B. Januar.xls, Februar.xls. Diese möchte ich jetzt einheitlich mit einem Präfix (Format_*.xls) umbennen. Einige besitzen dieses Präfix schon also heißen bereits Format_Januar . Zudem muss in jeder *.xls Datei eine Tabelle mit den Namen "Format" haben.

Nun benötige ich eine Batch-Datei, die mir

1. checkt ob die Datei das Präfix bereits besitzt ( Format_*.xls), wenn ja diese Datei nicht umbenennen
2. checken ob in allen Dateien eine Tabelle mit dem Name "Format" vorhanden ist, falls nicht wenn möglich mir den Dateiname in ein Logfile speichern

Zu 1. könnte ich mir mit einer if abfrage vorstellen und anschließend mit rename umbenennen falls nötig
Zu 2. fällt mir kein Ansatz ein wie ich die Batchdatei dazukriege die Tabellenblätter auf "Format" zu checken?!


Danke schonmal im Voraus!

Gruß
Felix
Mitglied: Skyemugen
15.03.2012 um 08:46 Uhr
Aloha,

zu 1. Das Thema ist neu und interessant, jedoch kauen wir ungern ewig auf altem Fleisch herum, darum wäre die Suchfunktion durchaus mehr als sinnvoll nutzbar (sofern man nicht nach dem rgc umbennen sucht, wobei, trifft auch viel).
wäre natürlich einfach mit einer for /f-Schleife ein dir /b /s "%Pfad%\*.xls"^|findstr /v /B Format durchzujagen, um dann ein ren "%%s" "Format_%%~nxs" durchzuführen
zu 2. pure batch? Vergiss es, maximal mit .vbs included und da warte dann mal auf unsere vbsler (bastla, TsukiSan, Friemler)

greetz André

@T-Mo, wer schnell haben will, sollte vbs nutzen, von schnell war hier nicht die Rede
Solange cmd schneller ist als Windows-Suche, ist für mich alles in Butter.
Bitte warten ..
Mitglied: 60730
15.03.2012 um 08:49 Uhr
moin,

mal ein kleiner denkanstoß...

Welche Dateien findet dieser Befehl?
dir /s *.xls
und jener?
dir /s Format_*.xls

Ps:
Nun benötige ich eine Batch-Datei, die mir
Zu 1. könnte ich mir mit einer if abfrage vorstellen und anschließend mit rename umbennen falls nötig
Zu 2. fällt mir kein Ansatz ein wie ich die Batchdatei dazukriege die Tabellenblätter auf "Format" zu checken?!

1. ich würde eine Schleife nehmen
2. ich vermute, du wirst das mit einem VBA lösen müssen...

Gruß

Edit

@ André (nein immernoch via ipad unterwegs)
2 dumme 3 gedanken?

Bei 100erten dateien, wuerde ich tatsaechlich zwei dirs auspipen, und dann via findstr /v die _ dateien auskillen und den rest verhackstueckeln.
Sollte bei dem umfang sehr viel schneller gehen.
/edit
Bitte warten ..
Mitglied: Hobelbank
15.03.2012 um 09:47 Uhr
Vielen Danke für die schnelle Antwort.

Auf die Dauert kommt es nicht an ;) sollte nur so einfach wie möglich sein und funktionieren.

Hier mal soweit die Umbennenung. Funktioniert soweit auch leider nicht in den Untververzeichnissen.. mit For /r sollte das doch normal funktionieren? kann mir da noch einer helfen?

@echo off
set "rootdir=C:\Tabellen"
set "prefix=Format"
set "filefilter=*.xls"
FOR /F "delims=" %%i in ('dir "%rootdir%\%filefilter%" /B^|findstr /V /I /B "%prefix%"') do ren "%%~fi" "%prefix%%%~nxi"


Zu 2. werde ich wohl auf VBA zurückgreifen müssen trotzdem danke

Grüße
Bitte warten ..
Mitglied: Skyemugen
15.03.2012 um 10:24 Uhr
...

und den Schalter /S hast du beim dir jetzt weggelassen, weil ... es dann ~f überflüssig macht?

P.S.: Wir haben hier eine schöne <code></code> Formatierung
Bitte warten ..
Mitglied: 60730
15.03.2012 um 10:43 Uhr
Salue

Zitat von Skyemugen:
...

P.S.: Wir haben hier eine schöne <code></code> Formatierung

Aber leider nooch keinen #rgc fuer €echo off....

Ich wuerde ja dem do ren ein echo spendieren..

Aussser du bist einer von den ganz harten, die schon in den garten duerfen, denn nur do ren ballert alles wech...

Dann ist ren natuerlich auch so ein ding, besser als move, denn das ballert evtl. Vorhandene richtig benamste dateien gnadenlos in den orkus....

Mein tipp nimm zip und sicher die erstmal alle.......
Bitte warten ..
Mitglied: 60730
15.03.2012 um 11:07 Uhr
Salve
[OT]
Kommentar von Moderator Biber am 15.03.2012 um 10.53.03 Uhr
Set /a rgc+=1

hmmm - wie macht er das nur immer - via setx wuerde ich ja verstehen, aber ein set alleine ist doch beim dosboxzuboxxen wech...

[/OT]
Bitte warten ..
Mitglied: bastla
15.03.2012 um 11:11 Uhr
Hallo Hobelbank und willkommen im Forum, hallo Skye & T-Mo!

Thema 2 ließe sich etwa so abhandeln:
01.
@echo off & setlocal 
02.
set "rootdir=C:\Tabellen" 
03.
set "filefilter=*.xls"  
04.
set "sheet=Format" 
05.
set "log=C:\Tabellen\Fehlend.txt" 
06.
 
07.
set C=%temp%\CheckForSheet.vbs 
08.
 >%C% echo SName=LCase(WScript.Arguments(1)) 
09.
>>%C% echo Set oXL=CreateObject("Excel.Application") 
10.
>>%C% echo With oXL 
11.
>>%C% echo     .Workbooks.Open WScript.Arguments(0):For Each Sh In .Sheets:If LCase(Sh.Name)=SName Then:F=True:Exit For:End If:Next:.ActiveWorkbook.Close False 
12.
>>%C% echo     .Application.Quit 
13.
>>%C% echo End With 
14.
>>%C% echo If Not F Then WScript.Quit 1 
15.
 
16.
del "%Log%" 2>nul 
17.
for /f "delims=" %%i in ('dir /s/b "%rootdir%\*%filefilter%"') do cscript //nologo %C% "%%i" "%sheet%"||>>"%log%" echo %%i
Dem VBScript werden Datei- und Tabellenname als Parameter übergeben. Die Rückmeldung erfolgt per Errorlevel (1 = "Tabelle nicht gefunden").

Grüße
bastla
Bitte warten ..
Mitglied: bastla
15.03.2012 um 11:13 Uhr
[OT] @T-Mo
ein set alleine ist doch beim dosboxzuboxxen wech...
Du glaubst doch wohl nicht, dass Biber die jemals zumacht?

Grüße
bastla
[/OT]
Bitte warten ..
Mitglied: Hobelbank
15.03.2012 um 13:13 Uhr
Zitat von Skyemugen:
...

und den Schalter /S hast du beim dir jetzt weggelassen, weil ... es dann ~f überflüssig macht?

P.S.: Wir haben hier eine schöne <code></code> Formatierung

Danke hat geklappt
Bitte warten ..
Mitglied: Hobelbank
15.03.2012 um 13:50 Uhr
Hallo bastla,

Danke für die Antwort, beim ausführen des Scripts erhalte ich einen Fehler (Kompilierungsfehler in Microsoft VB Script). In Zeile 1 Zeichen 1 "ungültiges Zeichen" mit dem Code 800A0408
Mit VBS kenn ich mich gar nicht aus.. kannst du mir sagen was falsch ist?

Vielen Danke

Felix
Bitte warten ..
Mitglied: Skyemugen
15.03.2012 um 14:17 Uhr
Aloha Felix,

ist es möglich, dass du bastlas Skript als .vbs gespeichert und ausgeführt hast?

Denn der besagte Fehler klingt so als ob dem so sei (1. Zeichen = @ = vbs Kill), ich hoffe, du hast bemerkt, dass bastlas Skript eine batch-Ausführung ist und kein pures vbs, das vbs steckt da nur drin und wird extra aufgerufen.

greetz André
Bitte warten ..
Mitglied: Hobelbank
15.03.2012 um 14:27 Uhr
Ouh wie dumm von mir...

Klar jetzt funktionierts danke für eure Hilfe!

Gruß
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
Ä in batch Datei (12)

Frage von BergEnte zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...