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

Kopieren von txt Dateien in Ordner mit dem Namen der txt Datei

Mitglied: Apeman

Apeman (Level 1) - Jetzt verbinden

08.06.2013, aktualisiert 03:17 Uhr, 1807 Aufrufe, 9 Kommentare

Hallo,

ich möchte mit einer batch Datei alle txt-Dateien aus dem Ordner Texte in den Ordner Neu kopieren, aber dort nicht einfach hinein, sondern immer in einen Unterordner mit dem Namen der darin befindlichen *.txt Datei. (Also : jede txt führt zu einen Ordner mit dem gleichen Namen)

Mein Problem ist jetzt, dass er mir die Ordner nicht erstellt und sie somit auch nicht mit der *.txt Datei füllen kann. Ich sehe aber nicht den Fehler in der Batch.

Bis jetzt bin ich so weit gekommen:


01.
@echo off 
02.
setlocal 
03.
 
04.
for %%i in ("Texte\*.txt") do (  
05.
 
06.
set "k=%%i:~0,-4%" 
07.
 
08.
md "%k%" 
09.
echo %k% 
10.
  
11.
copy "Texte\%i%" "Neu\%k%\%i%" 
12.
13.
pause

Schon mal vielen Dank im Voraus
Mitglied: Endoro
08.06.2013 um 09:26 Uhr
Hallo Apeman,

mein Vorschlag:
01.
@echo off 
02.
cd texte 
03.
for %%i in (*.txt) do ( 
04.
    md "%%~ni" 
05.
    copy "%%~i" "%%~ni" 
06.
)
Jetzt könnte ich noch einen Spruch über die SuFu und Google dalassen, mach ich natürlich nicht, weil ich ein Netter bin.
Ich halt einfach mal die Klappe (Kurt Beck würde sagen "das Maul", aber da bin ich mir doch zu fein für )

Liebe Grüsse.
Bitte warten ..
Mitglied: Apeman
08.06.2013, aktualisiert um 12:42 Uhr
Hallo Endoro,

erst mal vielen Dank für die schnelle Antwort.

Prinzipiell funktioniert dein Vorschlag, das Problem ist nur dass er nicht nur die *.txt aus dem Ordner "Texte" raussucht sondern aus seiner Umgebung (cd ist schlecht weil ich nachher noch in dem alten Ordner etwas machen will) und dann Packt er die Neuen Ordner in den Ordner in dem sich die *.txt's befinden (einsortieren klappt aber).


Ändere ich jetzt den copy Pfad, erstellt er die Ordner findet den neu angelegten Pfad aber nicht.

01.
@echo on 
02.
 
03.
for %%i in (Texte\*.txt) do ( 
04.
    md "Neu\%%~ni" 
05.
    copy "Texte\%%~i" "Neu\%%~ni\" 
06.
)


Und die zweite Sache ist, da ich den Namen der txt ohne die Endung nachher noch brauche, wollte ich ihn gerne als Variable ablegen ,was aber in meinem oberen script nicht klappt. Ich verstehe aber nicht warum.

Gruß

Apeman
Bitte warten ..
Mitglied: Endoro
08.06.2013, aktualisiert um 13:05 Uhr
Also z.B. so (Pfad sollte bei cd angepasst werden):
01.
@echo off 
02.
cd /d "X:\users\user\documents and settings\texte" 
03.
for %%i in (*.txt) do ( 
04.
    set "filename=%%~ni" 
05.
    set "fileextension=%%~xi" 
06.
    setlocal enabledelayedexpansion 
07.
    md "!filename!" 
08.
    copy "!filename!!fileextension!" "!filename!" 
09.
    endlocal 
10.
)
€dit:
Zitat von Apeman:
cd ist schlecht weil ich nachher noch in dem alten Ordner etwas machen will

Da passt pushd:
01.
@echo off 
02.
pushd "X:\users\user\documents and settings\texte" 
03.
for %%i in (*.txt) do ( 
04.
    set "filename=%%~ni" 
05.
    set "fileextension=%%~xi" 
06.
    setlocal enabledelayedexpansion 
07.
    md "!filename!" 
08.
    copy "!filename!!fileextension!" "!filename!" 
09.
    endlocal 
10.
11.
popd   &rem zurück zum Ausgangsordner
Gruss!
Bitte warten ..
Mitglied: Apeman
08.06.2013 um 13:07 Uhr
Super! das kommt dem schon mal sehr nahe.

Mein Problem ist halt noch, dass ich eben schlecht mit cd arbeiten kann (glaube ich zumindest), da ich alles in einem relativen Pfad haben muss und da ich auf die Ebene in der sich die batch befindet noch zugreifen muss. (jede text Datei muss mit einer exe gestartet werden und deren Output aus dem Ordner in dem auch die batch ist kopiert und genauso wie die txts einsortiert werden)

Oder müsste ich dann in der Schleife mit „cd“ immer hin und her springen?

Wenn ich das so versuche zu adaptieren:

01.
@echo off 
02.
setlocal 
03.
 
04.
 
05.
for %%i in ("Texte\*.txt") do (  
06.
 
07.
    set "filename=%%~ni" 
08.
    set "fileextension=%%~xi" 
09.
    setlocal enabledelayedexpansion 
10.
    md "Neu\!filename!" 
11.
  
12.
    copy "Texte\!filename!!filenameextension!" "Neu\!filename!" 
13.
    endlocal 
14.
15.
 
sagt er mir er kann den Ordner nicht finden

ich hätte vielleicht sofort sagen sollen was ich noch alles damit machen will.

Gruß
Bitte warten ..
Mitglied: Apeman
08.06.2013 um 13:23 Uhr
da haben wir wohl relativ zeitgleich geschrieben.

Um auf deinen Edit ein zu gehen:

Auch da packt er dann die neuen Ordner in den "Texte" Ordner, sie sollen aber in den Ordner "Neu", so wie ich es immer wieder in meinen Scripten versuche.
Dort findet er aber die neu angelegte Ordnerstruktur nicht und ich sehe den Fehler nicht

Ordner Struktur:

/batch Darin befindet sich die batch
/batch/Texte darin sind die Texte
/batch/Neu da sollen die neuen ordner und die neuen txt's rein
Bitte warten ..
Mitglied: Apeman
08.06.2013 um 13:44 Uhr
Ich hab es hinbekommen.

Dank deines Tipps mit:

setlocal enabledelayedexpansion

Klappt das Script jetzt so wie ich es haben möchte.

01.
@echo off 
02.
 
03.
for %%i in (Texte\*.txt) do ( 
04.
    set "filename=%%~ni" 
05.
    set "fileextension=%%~xi" 
06.
    setlocal enabledelayedexpansion 
07.
     
08.
    md "Neu\!filename!" 
09.
     
10.
    copy "Texte\!filename!!fileextension!" "Neu/!filename!" 
11.
    endlocal 
12.
)
Vielen Dank!!!!
Bitte warten ..
Mitglied: Endoro
08.06.2013 um 13:51 Uhr
In Batch kannst du einfach so eine Variable verwenden, ohne sie zu deklarieren.
Sie wird dann als Leerstring oder im Fall von set /a mit "0" initialisiert:

01.
copy "Texte\!filename!!filenameextension!" "Neu\!filename!" 
In diesem Fall ist !filenameextension! einfach leer.

Gruss!
Bitte warten ..
Mitglied: Apeman
08.06.2013 um 15:33 Uhr
Ah ok.

Vielen Dank nochmal!!

Meinetwegen kann der Thread dann auch geschlossen werden
Bitte warten ..
Mitglied: bastla
09.06.2013, aktualisiert um 00:47 Uhr
... wobei (wie von Endoro oben gezeigt) die zusätzlichen Variablen (und damit "delayedExpansion") ja gar nicht nötig wären, und mit "xcopy" auch automatisch der Zielordner erstellt würde:
01.
@echo off 
02.
 
03.
for %%i in (Texte\*.txt) do xcopy "%%i" "Neu\%%~ni\"
Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Kopieren von Dateien aus .txt Liste
Frage von mippselBatch & Shell2 Kommentare

Hallo zusammen, ich habe folgendes Problem: Von den über 2000 pdf/docx Dateien würde ich mir gerne gewisse Dateien in ...

Batch & Shell
Ordner von einem Verzeichnis in ein anderes Verzeichnis kopieren und Datei-Name verändern
gelöst Frage von gudboyBatch & Shell15 Kommentare

Ich habe ein "Verzeichnis A" mit Ordner. Die Ordner haben immer eine "F-Nummer" und einen Titel wie z.B. " ...

Batch & Shell
Dateien kopieren, rekursiv in einen Ordner
gelöst Frage von golsinBatch & Shell9 Kommentare

Hallo und noch ein Frohes neues Jahr ;-) Ich bin mal wieder etwas ratlos Ich Versuche von einem Rechner ...

Batch & Shell
Ordner durchsuchen und Dateien kopieren
gelöst Frage von friedensbringerBatch & Shell4 Kommentare

Hallo zusammen, gibt es mittels Batchfile eine Möglichkeit in einem definierten Ordner inklusive allen Unterordnern (mehrere Ebenen möglich) nach ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

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 2 TagenTipps & Tricks

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

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 2 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 2 TagenSicherheit10 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...