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
Hat jemand eine Idee wie man sowas hinbekommt?
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
Hat jemand eine Idee wie man sowas hinbekommt?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
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
3 Kommentare
Neuester Kommentar
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
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
@echo off
For /d %%a in ("c:\ordner\*") do (
>"%%a\info.txt" (echo %%~nxa)
)