Batch Textdatei im unbekannten Ordner erstellen mit Namen des Ordners als Inhalt

ed19dy

Newbie
Registriert
Aug. 2017
Beiträge
3
Hallo zusammen,

solangsam beiße ich mir die Zähne an folgender Aufgabe aus:

Auf dem Laufwerk "C" ("c:\Ordner") werden zufällig immer wieder Ordner mit verschiedenen Nummerierungen erstellt.
z.B. "C:\Ordner\72335" oder "C:\Ordner\68476" oder "C:\Ordner\68476"

Es soll nach allen Ordnern im Bereich c:\Ordner\* geprüft werden um dann in jedem der Ordner eine Textdatei zu erstellen. Z.B. "C:\Ordner\72335\info.txt" oder "C:\Ordner\68476\info.txt" oder "C:\Ordner\68476\info.txt"

Wichtig: In der Info.txt soll es einen Inhalt geben. Also der Name des Ordners.
Hat jemand eine Idee wie man sowas hinbekommt?
 
ed19dy schrieb:
Hat jemand eine Idee wie man sowas hinbekommt?
Eine For-Schleife über alle zu bearbeitenden Verzeichnisse, damit hat man sowohl Pfad als auch Verzeichnisnamen. Dann im Pfad eine info.txt anlegen und den Verzeichnisnamen hinein schreiben.
 
Hallo Andreas,

danke für deine Antwort. Um zu erfahren welche Verzeichnise im Ordner liegen, habe ich bereits eine Batch Datei geschrieben. Diese Batchdatei legt eine *.ok Datei mit dem Ordnernamen in das Verzeichnis c:\Ordner.

Hier die Batch hierzu:
___________________
@echo off & setlocal

set "Quelle=c:\ordner"
set "Ziel=c:\Ordner_Ziel"

for /d /r "%Quelle%" %%i in (*) do set "Pfad=%%~fi" & call :processDir "%%i"

goto :eof

:processDir

call set "PfadRel=%%Pfad:%Quelle%=%%"

md "%Ziel%\%PfadRel%" 2>nul && copy nul "%Ziel%\%~nx1.ok">nul
for /D %%a in ("c:\Ordner_Ziel\*.*") do rd /q /s "%%a"
for /R "C:\Ordner_Ziel" %%f in (*) do (move %%f "C:\ordner")

goto :eof
_________________

Unter c:\ordner habe ich bereits also folgende Dateien

72335
68476
72335.ok
68476.ok.

Ich dache das ich Anhand der Ok Dateien eine Abfrage erstellen kann die dann eine info.txt in die Verzeichnise schreibt. Ich weiß bloß noch nicht genau wie ich den Wert der Dateien in eine Variable bekomme. Die dann auch noch im Text File angezeigt wird. Die Info txt. muss in jedem einzelen Ordner der erstellt wurde liegen.
 
Zuletzt bearbeitet:
ed19dy schrieb:
solangsam beiße ich mir die Zähne an folgender Aufgabe aus:

Was wurde denn bisher probiert? Ist an sich ja eine triviale Aufgabe.

Meine Idee wäre die Verwendung des richtigen Werkzeugs. Als Bordmittel unter Windows bietet sich PowerShell an.
 
ed19dy schrieb:
Um zu erfahren welche Verzeichnise im Ordner liegen, habe ich bereits eine Batch Datei geschrieben.
Wozu? Das ist eine ganz einfache Schleife ...
Code:
Setlocal EnableDelayedExpansion

set mainOrdner=C:\Ordner\

For /F "tokens=* delims=" %%a in ('dir %mainOrdner% /ad /b') do (
	set pathName=%%~fa
	set dirName=%%~nxa
	set fileName=!pathName!\info.txt
	echo !dirName!>!fileName!
)
 
Ich mache sowas leider nicht sehr häufig deswegen ist das für mich nicht immer so trivial.
Vielen Lieben Dank Andreas. Deine Lösung funktioniert super!
 
Zurück
Oben