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

Batch-Programmierung Ergebnis einer FOR-Schleife übergeben

Frage Entwicklung Batch & Shell

Mitglied: Alex81m

Alex81m (Level 1) - Jetzt verbinden

24.06.2011, aktualisiert 18.10.2012, 5497 Aufrufe, 3 Kommentare

Batch-Programmierung Ergebnis einer FOR-Schleife übergeben

Hallo Zusammen,

hänge gerade an einem Problem bei welchem ich Hilfe benötige.
Ich möchte ein Batch-Skript bauen, welches mir in allen Verzeichnissen und Unterverzeichnissen nach MP3 Dateien sucht und die Ergebnisse dann weiterverarbeiten. Nun steh ich vor der Herausforderung die For-Schleifen-Ergebnisse auszulesen.
Aktuell habe ich folgenden CODE
01.
for /f "delims=" %%i IN ('dir /b /s *.mp3') do (  
02.
SET myString="%%i" 
03.
echo Ergebnis Forschleife: %%i 
04.
echo Ergebnis Variable: %myString% 
05.
REM ToDo Splitstring, Move 
06.
)
Nun bekomme ich jedoch folgende Ausgaben:
01.
c:\temp>Script.cmd 
02.
Ergebnis Forschleife: c:\temp\Ordner 1\Unterordner 1\1.mp3 
03.
Ergebnis Variable: "c:\temp\Ordner 1\Unterordner 3\3.mp3" 
04.
Ergebnis Forschleife: c:\temp\Ordner 1\Unterordner 2\Unterordner 2.1\2.mp3 
05.
Ergebnis Variable: "c:\temp\Ordner 1\Unterordner 3\3.mp3" 
06.
Ergebnis Forschleife: c:\temp\Ordner 1\Unterordner 3\3.mp3 
07.
Ergebnis Variable: "c:\temp\Ordner 1\Unterordner 3\3.mp3"
Mir ist absolut schleierhaft warum ich immer nur den letzten Wert der For-Schleife in der Variablen habe.
Bin für Ideen und Tipps offen.
Danke
Mitglied: bastla
24.06.2011, aktualisiert 18.10.2012
Hallo Alex81m und willkommen im Forum!
Mir ist absolut schleierhaft warum ich immer nur den letzten Wert der For-Schleife in der Variablen habe.
Wird es nicht mehr sein, wenn Du Dich etwas mit "delayedExpansion" beschäftigst - Du findest einiges zu diesem Stichwort hier im Forum. Schau Dir auch Friemlers Tutorial zur FOR-Schleife an.
Abgesehen davon ist es uU gar nicht erforderlich, die gefundenen mp3-Dateipfade in eine Variable zu übernehmen - was hast Du denn konkret damit vor?

Grüße
bastla
Bitte warten ..
Mitglied: Alex81m
24.06.2011 um 01:30 Uhr
Hi Bastla,

danke für den Tipp werde mir mal "delayedExpansion" anschauen .
Was ich damit vor habe? Ich möchte die Dateien aus dem Quellverzeichnis in ein neues Verzeichnis verschieben und genau die Ordnerstruktur der Quelle auf dem Ziel abbilden.
Beispiel Quelle: C:\Dir1\Dir2\Dir3\Dir4\1.mp3 nach Ziel D:\Dir1\Dir2\Dir3\Dir4\1.mp3
Mein Ansatz wäre nun ein Stringsplit um den Dateinamen zu erhalten und das Ziel zu replacen.

Grüße Alex81m
Bitte warten ..
Mitglied: bastla
24.06.2011 um 01:46 Uhr
Hallo Alex81m!

Wenn es tatsächlich nur darum ginge, "C:" durch "D:" zu ersetzen, sollte ja
01.
for /f "delims=" %%i IN ('dir /b /s C:\temp\*.mp3') do ( 
02.
    echo xcopy /dy "%%i" "D:%%~pnxi*" 
03.
    REM xcopy /dy "%%i" "D:%%~pnxi*" && del "%%i" 
04.
)
genügen ...

Zum Testen wird nur der Kopierbefehl angezeigt - wenn es vernünftig aussieht, kannst Du die Zeile 2 und das REM vor der Zeile 3 entfernen; dann wird zuerst kopiert ("xcopy" kann nämlich, anders als "move", den Zielpfad bei Bedarf erstellen) und, wenn kein Fehler aufgetaucht ist (deshalb die Verknüpfung mit "&&") danach die Quelldatei gelöscht.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Verlinkung erstellen Batch Datei mit for Schleife (2)

Frage von rusdav zum Thema Batch & Shell ...

Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Batch & Shell
gelöst Abfrage ERRORLEVEL springt aus der FOR Schleife (8)

Frage von Galindiesel zum Thema Batch & Shell ...

Batch & Shell
gelöst Warum funktioniert das echo in meiner for-Schleife auch mit Sonderzeichen? (9)

Frage von Pedant zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows 10

Plattformdienst für unbekannte Geräte (7023)

Tipp von KMUlife zum Thema Windows 10 ...

Administrator.de Feedback

Umgangsformen auf der Seite

(7)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(11)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
Windows Server Komplettspiegelung (15)

Frage von pdiddo zum Thema Windows Server ...

Batch & Shell
gelöst Dir tc Befehl unter Windows 10 macht Probleme (14)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
Windows Server 2016 RDS Remoteapp Anzeigefehler (11)

Frage von qlnGenius zum Thema Windows Server ...