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 13.11.2009 um 16:11:03 Uhr
Datei suchen und umbennen
#rgc = 626
Kann mir ganz speziell hier in diesem Schritt wer helfen?
Hm, das ist aber keine Frage, die Wildfremden gestellt werden sollte. Für Probleme im Schritt gibts spezielle Foren.
GELÖST

Datei suchen und umbennen

Frage Entwicklung Batch & Shell

Mitglied: maddiNson

maddiNson (Level 1) - Jetzt verbinden

13.11.2009, aktualisiert 16:15 Uhr, 4246 Aufrufe, 15 Kommentare

Mein Ziel ist es, eine gewisse Datei in einer Ordner-Struktur zu finden und diese in einem ganz bestimmten Ordner der Ordnerstruktur zu verschieben und diese auch noch umbenennen.

Nur mal so vorab, ich nutze gerne Batchdateien um einfache Probleme, die in irgendeiner Art und Weise relativ zeitaufwändig sind, schneller zu lösen. Allerdings waren meine Probleme bisher relativ simpel und mein nächstes "Projekt" übertrifft meine momentane Grenze.

Ich versuche einmal detailiert zu beschreiben, was ich tun möchte:

Vorab würde ich gern 2 Parameter setzen: eine 6-stellige Auftragsnummer und eine Projektnummer, die wohl meist als 09/01234 eingetragen wird, aber als 09-01234 behandelt werden soll.

Folgende Dateistruktur:

Ordner\
Büro 1\
Ordner 1\
Ordner 2\
Büro 2\
Ordner 1\
Ordner 2\
Büro 3\
etc.

Ich möchte nun eine Datei finden, die eine bestimmte Projektnummer im Namen hat z.B. 09-01234 und sich in irgendeinem "Ordner 1" befindet. Wenn ich die Datei gefunden habe, soll er diese nehmen und diese innerhalb des Büros in Ordner 2 verschieben. Hier kommt mein erstes Problem, wenn ich die Datei mit "find" finde, dann weiß ich spontan nicht, wie ich diese verschiebe, da ich mit der Ausgabe nicht wirklich viel anfangen kann.

Womit ich einfach nicht zurecht komme ist dann folgendes: Ich habe also dann eine Datei in ein Verzeichnis verschoben die z.B. folgenden Namen hat: Projekt_Nürnberg_09-01234.xls . Nun soll diese Datei in folgendes umbenannt werden: Projekt_Nürnberg_09-01234_123456.xls .

Im optimalfall sollte dann noch ein Wert in eine ganz bestimmte Excelzelle eingetragen werden, aber dazu hab ich vorhin was gesehn, vielleicht krieg ich das selbst hin. Wobei auch ein einfaches öffnen der Datei erstmal vollkommen ausreichen würde.

Folgendes habe ich bereits:

set /P PROJEKTNUMMER=
set /P AUFTRAGSNUMMER=

Hier kommt mein erstes Problem, er soll erstmal überprüfen ob die Projektnummer richtig eingetragen wurde, aber ich komm einfach mit diesem for /F delims nicht wirklich klar. Ich hab mal etwas angefangen aber es noch nicht testen können

for /F "delims=/ tokens=1,2" %%i in %PROJEKTNUMMER% do set /P PROJEKTNUMMER2=%%i/%%j %%i-%%j

Aber wie bereits erwähnt ist dies das kleinere übel, kompliziert für mich wird es erst, wenn ich eine Datei finden muss, diese dann hernehmen und umbennen und auch noch verschieben muss. Ich kann einfach mit der find-Ausgabe nicht wirklich was anfangen, bzw. mein Wissen ist da zu begrenzt um es nutzen zu können.

Kann mir ganz speziell hier in diesem Schritt wer helfen? Für jede Antwort bin ich wirklich sehr dankbar.

Mit freundlichen Grüßen

maddiNson
Mitglied: bastla
13.11.2009 um 15:22 Uhr
Hallo maddiNson und willkommen im Forum!

Da ich momentan nicht mehr Zeit habe, nur ein erster Ansatz:
01.
@echo off & setlocal 
02.
set "Basis=D:\Ordner" 
03.
 
04.
for /f "delims=" %%i in ('dir /s /b /ad "%Basis%\Ordner1"') do echo %%i --^> %%~dpiOrdner2 
05.
popd
Grüße
bastla
Bitte warten ..
Mitglied: 60730
13.11.2009 um 16:03 Uhr
Auch dir eine beliebige nette erste Zeile geschrieben.

Vermeide es, mit Umlauten in Ordnernamen zu arbeiten, denn das wird ein weiterer Stolperstein.

Von daher darfst du den Schnippsel von Bastla nicht in Notepad erzeugen, sondern z.B in Edit

Gruß


umbennen Bibers Counter ....
noch 40 und derjenige welcher - kriegt ganz sicher einen netten Reim vom Beilschen Timo....
@Biber meinst du das Michael Jackson Syndrom Forum?
Bitte warten ..
Mitglied: bastla
13.11.2009 um 18:38 Uhr
@Timo
Von daher darfst du den Schnippsel von Bastla nicht in Notepad erzeugen, sondern z.B in Edit
Wo hast Du einen Umlaut gefunden? Geschrieben hatte ich jedenfalls keinen (und schon gar nicht mit "edit.com") ...

... aber grundsätzlich hast Du mit den Umlauten natürlich Recht.
@maddiNson
Soferne ich das richtig verstanden habe, würde ich (nicht nur wegen des "/P")
for /F "delims=/ tokens=1,2" %%i in %PROJEKTNUMMER% do set /P PROJEKTNUMMER2=%%i/%%j %%i-%%j
zugunsten von
set "PROJEKTNUMMER2=%PROJEKTNUMMER:/=-%"
verwerfen.

Zum Thema "Verschieben und umbenennen": Mit einem "move" funktioniert das in einem Waschgang ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
13.11.2009 um 18:55 Uhr
Moin bastla,

<OT>
Zitat von bastla:
@Timo
Wo hast Du einen Umlaut gefunden?
In "Büro 3" ist einer versteckt, aber ich sag jetzt nicht wo....

Zum Thema "Verschieben und umbenennen": Mit einem "move" funktioniert das in einem Waschgang ...
"Move" ist auch nicht ganz so tippfehlerträchtig....
</OT>

Grüße und schönes Wochenende
Biber
Bitte warten ..
Mitglied: 60730
13.11.2009 um 19:00 Uhr
Zitat von bastla:
@Timo
Wo hast Du einen Umlaut gefunden? Geschrieben hatte ich jedenfalls keinen (und schon gar nicht mit "edit.com") ...

@bastla:
Du nicht, aber das wird wohl "irgendjemand" an seine Ordnerstruktur
Ordner\
Büro 1\
usw anpassen....

btw:
edlin gibts ja auch noch unter XP

Grüße zurück

Edit - nicht edlin oder Notepad
@Biber - du linksüberholer....
Edit²
@Bastla- wer lesen kann ist klar im Vorteil... Advantage BeckerBastla
Bitte warten ..
Mitglied: bastla
13.11.2009 um 19:32 Uhr
@Biber
Mein Hinweis hatte sich (nicht ganz leicht erkennbar ) auf
Von daher darfst du den Schnippsel von Bastla nicht in Notepad erzeugen, sondern z.B in Edit
bezogen - und ich bin mir weiterhin sicher, dass in meinem "Schnipsel" kein Umlaut vorkommt (und auch, dass im Zweifelsfall mit diesem Code Datei-/Ordnernamen mit Umlauten wunschgemäß verarbeitet werden).

@Timo
Du nicht, aber das wird wohl "irgendjemand" an seine Ordnerstruktur ... anpassen.
Wenn diese Ordnerstruktur ernst gemeint war, wird auch nach der Anpassung (da keiner der "Büro"-Ordner unmittelbar angesprochen werden muss) kein Umlaut im Batch benötigt ...

... ansonsten hatte ich Dir ja oben schon Recht gegeben (und sage es auch gerne ausdrücklich: Umlaute in Pfad- und Ordnernamen sind pfui! )

Schönes Wochenende
bastla

[Edit] War ein langer Tag ... [/Edit]
Bitte warten ..
Mitglied: maddiNson
16.11.2009 um 11:15 Uhr
Also ich möchte euch allen für eure Antwort danken. Ich bin schon ein kleines Stückchen weiter.

Das Problem mit dem umbenennen und verschieben funktioniert mit MOVE eigentlich wunderbar. So sieht das momentan aus:

MOVE /-Y %BASIS%\%BUERO%\b_Projektnummer\%DATEINAME%.xls %BASIS%\%BUERO%\%AUFTRAGSART%\%DATEINAME%_%AUFTRAGSNUMMER%.xls

Aber ich habs so lang probiert und das Thema wird hier scheinbar wirklich verpöhnt, aber ich kriege es einfach nicht hin eine Datei zu suchen, die %PROJEKTNUMMER2% im Namen hat und den Namen dieser ohne dem .xls hinten dran in %DATEINAME% abzulegen.



Zu den Ordnern mit Umlaufen. Die Büro-Ordner haben da nunmal das Ü drin und ich kanns nicht ändern. Aber mit den tollen Ordnernamen mit diesem ~ da drin funktionierts wunderbar :d
Bitte warten ..
Mitglied: 60730
16.11.2009 um 11:46 Uhr
Servus,

das Thema wird hier scheinbar wirklich verpöhnt,

nein - das ist ein (doppelter) running Gag und das Thema taucht hier einmal die Woche auf und es sollten eigentlich mittlerweile mehr gelöste Themen dazu hier zu finden sein, als Wasser auf dem Mond
Und der andere "runnning Gag" mit dem umbennen... hört sich für mich nach umrennen an

Aber mit den tollen Ordnernamen mit diesem ~ da drin funktionierts wunderbar :d

ja aber nur unter Umständen - löscht du irgendwann mal den Büro2 Ordner und legst Ihn danach neu an - "stimmt der "tolle ~1 ~2 ~3" Pfad nicht mehr...

Nur als kleine Zwischenfrage - war jetzt noch ein Punkt offen?

Gruß
Bitte warten ..
Mitglied: maddiNson
16.11.2009 um 11:53 Uhr
Mal von meiner ganz speziellen Suche-Frage nein.

Wie gesagt, ich kriege es einfach nicht hin und finde zwar viel im Bezug auf das Suchen von Dateien, dennoch hilft mir da nicht wirklich etwas weiter.

Mein letztes Problem ist also eine Datei zu finden und deren Name ohne Endung in %DATEINAME% zu hinterlegen. Dann dürfte, wie ich denke, alles passen.
Bitte warten ..
Mitglied: bastla
16.11.2009 um 12:41 Uhr
Hallo maddiNson!
Mein letztes Problem ist also eine Datei zu finden und deren Name ohne Endung in %DATEINAME% zu hinterlegen.
Je nach Ausgangsordner etwa so:
for /f "delims=" %%i in ('dir /b /s "%BASIS%\%BUERO%\*%PROJEKTNUMMER2%*.*"') do set "DATEINAME=%%~ni"
Grüße
bastla
Bitte warten ..
Mitglied: maddiNson
16.11.2009 um 13:39 Uhr
Ich danke vielmals. Ich habs eben getestet und es hat auch funktioniert. Allerdings hätte ich noch gern eine letzte Frage, was macht dieser letzter Befehlt genau? Also ich würde es auch gern verstehen.
Bitte warten ..
Mitglied: 60730
16.11.2009 um 13:43 Uhr
Servus,

gib doch einfach mal
set /?
for /?
in einer DosBox ein.

Da wird "eigentlich" alles erklärt

Gruß
Bitte warten ..
Mitglied: maddiNson
16.11.2009 um 14:05 Uhr
Ach ganz so unklug bin ich dann doch nicht. Die einzelnen Befehle sind mir durchaus bewusst bzw. ich hab deren Hilfe schonmal gelesen. Allerdings versteh ich trotzdem nicht was genau in in dieser einen Zeile vor sich geht. Ganz besonders das Ende mit %%~ni, keine Ahnung wo das herkommt und was das genau bedeutet.
Bitte warten ..
Mitglied: 60730
16.11.2009 um 14:09 Uhr
Servus,

for /?
/snip

Zusätzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert.
Sie können jetzt folgende Syntax verwenden:

%~I - Expandiert %I und entfernt alle umschließenden Anführungszeichen (").
%~fI - Expandiert %I zu einem vollständigen Dateinamen.
%~dI - Erzeugt nur den Laufwerkbuchstaben von %I.
%~pI - Erzeugt nur den Pfad von %I.
%~nI - Erzeugt nur den Dateinamen von %I.
%~xI - Erzeugt nur die Dateierweiterung von %I.
%~sI - Erzeugter Pfad enthält nur kurze Dateinamen.
%~aI - Erzeugt die Dateiattribute von %I.
%~tI - Erzeugt Datum und Zeit von %I.
%~zI - Erzeugt die Dateigröße von %I.
%~$PATH:I - Durchsucht die in der PATH-Umgebungsvariablen
angegebenen Verzeichnisse und expandiert die erste
gefundene Datei %I zu dem vollständigen Dateinamen.

so besser?
Gruß
Bitte warten ..
Mitglied: maddiNson
16.11.2009 um 14:22 Uhr
Ja genau das wollte ich noch wissen. Ich danke für alles!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(4)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Wert in einer TXT Datei suchen (11)

Frage von nolle99 zum Thema Batch & Shell ...

VB for Applications
gelöst Mit VBA im Monatskalender Datum suchen - aus anderer Datei einfügen (6)

Frage von Otto1699 zum Thema VB for Applications ...

Batch & Shell
gelöst Datei in Ordner mit Batchdatei suchen und weiterverarbeiten (2)

Frage von MichaelWiggen zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (17)

Frage von Unwichtig zum Thema Netzwerkmanagement ...