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-Key: 346189

Url: https://administrator.de/contentid/346189

Printed on: April 19, 2024 at 20:04 o'clock

Member: Enygma
Enygma Aug 12, 2017 at 11:51:09 (UTC)
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
Mitglied: 133883
133883 Aug 12, 2017 updated at 12:17:07 (UTC)
Goto Top
@echo off
For /d %%a in ("c:\ordner\*") do (  
    >"%%a\info.txt" (echo %%~nxa)  
)
Gruß
Mitglied: 133883
133883 Aug 15, 2017 at 12:37:40 (UTC)
Goto Top