ed19dy
Goto Top

Textdatei im unbekannten Ordner erstellen mit Namen des Ordners als Inhalt

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\68478"

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\68478\info.txt"

Wichtig: In der Info.txt soll es einen Inhalt geben. Also der Name des Ordners.


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
68478
72335.ok
68476.ok.
68478.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. Wenn ich das ganze habe möchte ich Ordner für Ordner auf ein Netzlaufwerk verschieben. Klingt kompliziert face-sad
Hat jemand eine Idee wie man sowas hinbekommt?

Content-ID: 346189

Url: https://administrator.de/forum/textdatei-im-unbekannten-ordner-erstellen-mit-namen-des-ordners-als-inhalt-346189.html

Ausgedruckt am: 23.12.2024 um 10:12 Uhr

Enygma
Enygma 12.08.2017 um 13:51:09 Uhr
Goto Top
Hallo ed19dy.

Käme auch ein VB-Skript in Frage?
Dann wäre die Lösung wie folgt:

Const Verzeichnis = "C:\Ordner\"

Dim FSO
Dim oFolder
Dim oSubfol
Dim txtFile

Set FSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = FSO.GetFolder(Verzeichnis)


For each oSubfol In oFolder.Subfolders

Set txtFile = FSO.CreateTextFile(Verzeichnis & oSubfol.Name & "\info.txt")
txtFile.WriteLine oSubfol.Name
txtFile.close

Next

Set txtFile = nothing
Set oFolder = nothing
Set FSO = nothing

Grüße
133883
133883 12.08.2017 aktualisiert um 14:17:07 Uhr
Goto Top
@echo off
For /d %%a in ("c:\ordner\*") do (  
    >"%%a\info.txt" (echo %%~nxa)  
)
Gruß
133883
133883 15.08.2017 um 14:37:40 Uhr
Goto Top