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
GELÖST

Textdateien automatisch erstellen und nach Ordner benennen

Frage Entwicklung Batch & Shell

Mitglied: striding

striding (Level 1) - Jetzt verbinden

25.11.2013 um 20:32 Uhr, 2296 Aufrufe, 10 Kommentare, 1 Danke

Hallo Administrator-Community!

Ich stelle hier meine Frage, weil ich von Batch-Dateien leider keine Ahnung habe, sie aber warscheinlich mein "Problem" lösen.

Ich habe eine externe Festplatte mit einem Haufen Unterordner. Da ich sie nicht immer an- und abstöpseln möchte, würde ich mir gerne für jeden Ordner eine Text-Datei mit dem gleichen Namen erstellen.
Ein Beispiel:
Ordnername: Winterurlaub (2012)
Daraus möchte ich ein Textdokument mit dem gleichen Name (Winterurlaub (2012).txt) machen. Also einfach nur ein leeres Textdokument, mit einem Namen.
Am besten eine Batchdatei, die aus allen Unterordnern jeweils eine Testdatei erstellt.
Ist soetwas überhaupt möglich?
Wann ja, könnte mir jemand weiterhelfen?

Freundliche Grüße

Striding
Mitglied: schmitzi
25.11.2013 um 21:18 Uhr
na klar. Sollte gehen.

Wo sollen die TXTs denn landen ?
(Denke, auf der lokalen Platte, und nicht auf der USB (nennen wir es U wegen abklemmen)

OK. Sollen die TXTs (sagen wir mal auf C "flach" in EINEM Ordner landen ?
(was ein Problem bei gleichen Ordnernamen in unterschiedlichen Ordnern ergeben würde)

Oder soll die Ordnerstruktur der USB-HDD quasi LEER abgebildet und in jedem
Zielordner halt nicht die Dateien, sondern nur die eine, jeweilige TXT stehen ?
Bitte warten ..
Mitglied: bastla
25.11.2013 um 21:20 Uhr
Hallo striding und willkommen im Forum!

An sich durchaus machbar - offen ist aber jedenfalls die Frage, ob diese Dateien alle in einem einzigen Ordner erstellt werden sollen, und wenn ja, was bei Namensgleichheit geschehen sollte ...

... und außerdem: Sollen diese Dateien auch einen Inhalt haben?

Grüße
bastla
Bitte warten ..
Mitglied: striding
25.11.2013 um 21:40 Uhr
Danke für die schnelle Antwort!
Das klingt schonmal super!
Ja, auf dem Desktop sind sie immer schnell zu finden.

Dass sie in einem Ordner landen, wäre ideal, als ich die Ordner nach und nach erstellt habe, habe ich darauf geachtet, dass kein Name doppelt vorkommt.

Hm, es sollten keine neuen Ordner erstellt werden, nur Textdokumente mit dem Namen des jeweiligen Ordners, wobei die Textdatei leer ist.
Bsp:
Aus dem Ordner "Winterurlaub (2012)" (200MB) (Pfad: F (oder U):\Urlaubsbilder)
soll "Winterurlaub (2012).txt" (0Bytes) (Pfad: C:\Users\XY\Desktop\ExterneFestplatte_F\Urlaubsbilder) werden.
Aus dem Ordner "Sommerurlaub (2012)" (150MB) (Pfad: F (oder U):\Urlaubsbilder)
soll "Sommerurlaub (2012).txt" (0Bytes) (Pfad: C:\Users\XY\Desktop\ExterneFestplatte_F\Urlaubsbilder) werden
Bitte warten ..
Mitglied: bastla
25.11.2013, aktualisiert um 21:57 Uhr
Hallo striding!

Wenn demnach die Ordnerstruktur übernommen werden soll (dann kann es auch keine Kollisionen mit gleichen Namen geben), (ungetestet) etwa so:
01.
@echo off & setlocal 
02.
set "Quelle=F:\" 
03.
set "Ziel=%userprofile%\Desktop\ExterneFestplatte_F" 
04.
 
05.
for /d /r "%Quelle%" %%i in (*) do set "Pfad=%%~fi" & call :ProcessDir "%%i" 
06.
goto :eof 
07.
 
08.
:ProcessDir 
09.
call set "PfadRel=%%Pfad:%Quelle%=%%" 
10.
md "%Ziel%\%PfadRel%\" 2>nul && copy nul "%Ziel%\%PfadRel%\%~nx1">nul 
11.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: striding
25.11.2013 um 23:00 Uhr
Hallo bastla!
Vielen Danke für die Hilfe!

Habe es natürlich gleich ausprobiert, und es funktioniert im Großen und Ganzen.
Zwei Sachen sind mir aber aufgefallen:

Zum einen sind das in den Ordnern keine Text-Dateien, sondern Dateien ohne Endungen.

Zum anderen sind Ordner erstellt worden, was von Dir auch beabsichtigt war. Das war mein Fehler, da ich den Ordner auf dem Desktop genauso genannt habe.
Ich versuche nochmal ein Beispiel zu geben bzw das vorhandene zu verbessern:

Aus dem Ordner "Winterurlaub (2012)" (200MB) (Pfad: F:\Urlaubsbilder\2012)
soll "Winterurlaub (2012).txt" (0Bytes) (Pfad: C:\Users\XY\Desktop\ExterneFestplatte_F\) werden.

Die Ordnerstrukturen sollen nicht übernommen werden, es sollen alle Daten die sich auf F:\ befinden, in den einen Ordner auf dem Desktop (ExterneFestplatte_F) zusammengeschmissen werden.

Falls man eine "Sicherung" vor Kollisionen bei Namen einbauen muss, wäre der gleiche Name mit einem "_01", "_02" super. Zwei Stellen sollten ausreichen.
Bsp:
Antigua_Barbuda_DSC149
Antigua_Barbuda_DSC149_01
Antigua_Barbuda_DSC149_02
Bitte warten ..
Mitglied: schmitzi
25.11.2013, aktualisiert um 23:52 Uhr
Hi, nur falls das interessant ist, hiermit kannst Du Dir ein Textfile mit der Ordnerstruktur erstellen:
(bei englischen Windows muss Du "Verzeichnis von" noch übersetzen)
01.
@ECHO OFF 
02.
SETLOCAL EnableDelayedExpansion 
03.
MD C:\BATCHES 
04.
 
05.
SET SOURCEFOLDER=U:\ 
06.
SET TARGETFILE=C:\Batches\verzeichnisliste.txt 
07.
SET KOMMANDO=dir %SOURCEFOLDER% /s 
08.
 
09.
REM DELETE AND GENERATE TARGETFILE 
10.
ECHO LIST OF MY DIRECTORIES ON %SOURCEFOLDER%  -  %DATE% - %TIME:~0,-3% >%TARGETFILE% 
11.
ECHO =============================================================================== >>%TARGETFILE% 
12.
 
13.
REM LOOP-DI-LOOP 
14.
FOR /f "tokens=* delims=" %%a IN ('%KOMMANDO% ^|find "Verzeichnis von"') DO ( 
15.
                 CALL :SPLITSTRING "%%a" 
16.
17.
GOTO ENDE 
18.
 
19.
REM EXTRACT FOLDERNAME FROM STRING 
20.
:SPLITSTRING 
21.
SET TMPSTRING=%1 
22.
SET RESULTSTR=%TMPSTRING:~18,-1% 
23.
ECHO %RESULTSTR% >>%TARGETFILE% 
24.
goto :EOF 
25.
 
26.
 
27.
:ENDE 
28.
pause 
29.
@ECHO. 
30.
type %TARGETFILE% 
31.
@ECHO. 
32.
 
33.
pause
REM VIEL SPASS >>:O)
Bitte warten ..
Mitglied: bastla
25.11.2013 um 23:06 Uhr
Hallo striding!

Dann also eher:
01.
@echo off & setlocal 
02.
set "Quelle=F:\" 
03.
set "Ziel=%userprofile%\Desktop\ExterneFestplatte_F" 
04.
 
05.
md "%Ziel%" 2>nul 
06.
for /d /r "%Quelle%" %%i in (*) do call :ProcessDir "%%i" 
07.
goto :eof 
08.
 
09.
:ProcessDir 
10.
set "Suffix=" 
11.
set /a Nr=1000 
12.
:Test 
13.
if not exist "%Ziel%\%~nx1%Suffix%.txt" goto :Schreiben 
14.
set /a Nr+=1 
15.
set "Suffix=_%Nr:~-2%" 
16.
goto :Test 
17.
 
18.
:Schreiben 
19.
copy nul "%Ziel%\%~nx1%Suffix%.txt">nul 
20.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: bastla
25.11.2013, aktualisiert um 23:24 Uhr
Hallo schmitzi!

Nur für den Fall, dass es mal schnell gehen muss:
dir /s/b/ad "%SOURCEFOLDER%">>"%TARGETFILE%"
... und "delayedExpansion" wäre auch nicht nötig gewesen ...

Grüße
bastla
Bitte warten ..
Mitglied: schmitzi
25.11.2013 um 23:35 Uhr
Hi Bastla,

ach, deshalb sind meine Batches immer gleich 5 Kilometer lang :O))

Aber warum einfach wenn es auch komplizert geht

Danke für den Hinweis, wer /? eingeben kann ist klar im Vorteil :O)

Gruss
RS

</flachs>
PS: oder man gibt format u /s ein, dann kann man die Liste auch schnell von Hand schreiben.
</flachs>
Bitte warten ..
Mitglied: striding
25.11.2013 um 23:36 Uhr
Perfekt!
Danke euch beiden basta und schmitzi!
Bitte warten ..
Ähnliche Inhalte
Windows 7
Computer automatisch nach Seriennummer benennen
gelöst Frage von StendeWindows 73 Kommentare

Hallo, ich versuche mittels Batch-Datei Computer automatisch nach ihrer Seriennummer zu benennen. Hierzu habe ich mir folgenden Batch-Job erstellt: ...

Windows Server
Automatisch erstellen von Ordner
gelöst Frage von MeisterFuchsWindows Server9 Kommentare

Hallo liebe Gemeinde Ich habe ein Problem Ich habe mit Windows Server 2008 R2 eine Domain erstellt. Bis jetzt ...

Batch & Shell
Mit Batch Datei nach Ordner benennen indem sie sich befindet?
gelöst Frage von PinkFLuffyUnicornBatch & Shell4 Kommentare

Hi, ich hab nen Haufen Dateien über den JDownloader runtergeladen, und grade eben gemerkt, dass ich nur die Ordner ...

Microsoft
Ordner mit LW-Buchstaben versehen und benennen
Frage von Xaero1982Microsoft21 Kommentare

Moin, gibt es einen Weg einen Ordner mit einem LW-Buchstaben zu versehen und zu benennen. Subst kann zwar einen ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 StundeBatch & Shell1 Kommentar

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 3 StundenHumor (lol)5 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 18 StundenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 19 StundenSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Linux
OpenSource Groupware
Frage von FA-jkaLinux13 Kommentare

Hallo, ich suche eine Groupware als Alternative zum Exchange. Wesentliche Aufgaben sind die Handhabung von E-Mails (persönliche und gemeinsam ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...