philipp17
Goto Top

Unterordner nach Bedingung erstellen

Hallo zusammen,

ich habe jährlich das gleiche Problem: ich habe eine alphabetische Ordnerstruktur, in der auch Lieferanten sind. Aktive Lieferanten haben eine Unterordner "Rechnungen" in diese Ordner möchte ich (z.B. per .bat-Datei) leere Unterordner "2023" erstellen. Hinweis: Ordner 2022 gibt es bereits in den einzelnen Directoires. Die Aufgabe ist sicher nicht so schwer, nur kann ich sie leider ohne Hilfe nicht lösen. Vielen Dank für einen Tipp.

Liebe Grüße
Philipp

Content-ID: 5040656971

Url: https://administrator.de/forum/unterordner-nach-bedingung-erstellen-5040656971.html

Ausgedruckt am: 23.04.2025 um 04:04 Uhr

4863114660
4863114660 21.12.2022, aktualisiert am 23.12.2022 um 12:13:00 Uhr
Goto Top
@echo off
chcp 1252 >nul
set /p "year=Jahr eingeben: "  
set "root=D:\RootOrdner"  
for /f "delims=" %%a in ('dir /b /s /ad "%root%\Rechnungen"') do md "%%a\%year%"  

Gruß S.
erikro
erikro 21.12.2022 um 17:13:42 Uhr
Goto Top
Moin,

mit der Powershell:

Get-ChildItem -recurse -Directory | ?{$_.name -eq "Rechnungen"} | %{new-item -name "2023" -ItemType Directory -Path $_.fullname  

Ausführen im übergeordneten Verzeichnis.

hth

Erik
Philipp17
Philipp17 23.12.2022 um 11:54:15 Uhr
Goto Top
Hallo Erik,
danke für die PowerShell-Comando-Zeile wo/wie kann ich diese ausführen?

Liebe Grüße
Philipp
Philipp17
Philipp17 23.12.2022 um 11:59:27 Uhr
Goto Top
Zitat von @4863114660:

@echo off
set /p "year=Jahr eingeben: "  
set "root=D:\RootOrdner"  
for /f "delims=" %%a in ('dir /b /s /ad "%root%\Rechnungen"') do md "%%a\%year%"  

Gruß S.

Hallo Schlepper,

Vielen Dank für den .bat-Code. Muss ich bei jedem gefundenen Ordner „Rechnungen“ „2023“ eingeben oder reicht einmal.

Hier

set "root=D:\RootOrdner"

Setze ich dann das tatsächliche Verzeichnis ein. Gehen da auch Ordner die Umlaute etc. enthalten oder muss ich da vorher die Ausnahmen definieren.

Liebe Grüße
Philipp
4863114660
4863114660 23.12.2022 aktualisiert um 12:14:41 Uhr
Goto Top
Zitat von @Philipp17:
Vielen Dank für den .bat-Code. Muss ich bei jedem gefundenen Ordner „Rechnungen“ „2023“ eingeben oder reicht einmal.
Wird nur einmal zu Beginn abgefragt.
Setze ich dann das tatsächliche Verzeichnis ein. Gehen da auch Ordner die Umlaute etc. enthalten oder muss ich da vorher die Ausnahmen definieren.
Ja das übergeordnete Verzeichnis in dem sich alle Unterordner befinden, das Verzeichnis wird rekursiv durchsucht . Für Umlaute habe ich es dir gerade angepasst. Datei dann bitte im ANSI Encoding speichern.
erikro
erikro 23.12.2022 um 12:16:03 Uhr
Goto Top
Zitat von @Philipp17:

Hallo Erik,
danke für die PowerShell-Comando-Zeile wo/wie kann ich diese ausführen?

Liebe Grüße
Philipp

Na auf der Powershell. face-wink Einfach mal auf den Start-Button klicken und dort "Power" in die Suche eingeben.
Philipp17
Philipp17 23.12.2022 um 13:55:12 Uhr
Goto Top
Zitat von @4863114660:

Zitat von @Philipp17:
Vielen Dank für den .bat-Code. Muss ich bei jedem gefundenen Ordner „Rechnungen“ „2023“ eingeben oder reicht einmal.
Wird nur einmal zu Beginn abgefragt.
Setze ich dann das tatsächliche Verzeichnis ein. Gehen da auch Ordner die Umlaute etc. enthalten oder muss ich da vorher die Ausnahmen definieren.
Ja das übergeordnete Verzeichnis in dem sich alle Unterordner befinden, das Verzeichnis wird rekursiv durchsucht . Für Umlaute habe ich es dir gerade angepasst. Datei dann bitte im ANSI Encoding speichern.

Hallo Schlepper,

die angepasste Version war leider nicht dabei

Danke fürs nachreichen.

Liebe Grüße
Philipp
Philipp17
Lösung Philipp17 23.12.2022 um 14:49:04 Uhr
Goto Top
Zitat von @4863114660:

@echo off
chcp 1252 >nul
set /p "year=Jahr eingeben: "  
set "root=D:\RootOrdner"  
for /f "delims=" %%a in ('dir /b /s /ad "%root%\Rechnungen"') do md "%%a\%year%"  

Gruß S.

Hallo Schlepper,

wenn ich für die Umlaute mit "chcp 1252 >nul"
muss ich dann mit "chcp 850>nul" schließen?
danke für eine kurze Rückmeldung.

Liebe Grüße
Philipp
4863114660
4863114660 23.12.2022 aktualisiert um 18:08:29 Uhr
Goto Top
Zitat von @Philipp17:
muss ich dann mit "chcp 850>nul" schließen?
Nein, das gilt eh nur für die aktuelle Session.
Philipp17
Philipp17 29.12.2022 um 17:13:25 Uhr
Goto Top
Zitat von @Philipp17:

Zitat von @4863114660:


@echo off
chcp 1252 >nul

Zitat von @4863114660:

Zitat von @Philipp17:
Vielen Dank für den .bat-Code. Muss ich bei jedem gefundenen Ordner „Rechnungen“ „2023“ eingeben oder reicht einmal.
Wird nur einmal zu Beginn abgefragt.
Setze ich dann das tatsächliche Verzeichnis ein. Gehen da auch Ordner die Umlaute etc. enthalten oder muss ich da vorher die Ausnahmen definieren.
Ja das übergeordnete Verzeichnis in dem sich alle Unterordner befinden, das Verzeichnis wird rekursiv durchsucht . Für Umlaute habe ich es dir gerade angepasst. Datei dann bitte im ANSI Encoding speichern.

Lieber Schlepper,

vielen Dank für die Lösung - genau diesen Weg habe ich gesucht

LG
Philipp
Philipp17
Philipp17 29.12.2022 um 17:14:23 Uhr
Goto Top
Zitat von @erikro:

Moin,

mit der Powershell:

Get-ChildItem -recurse -Directory | ?{$_.name -eq "Rechnungen"} | %{new-item -name "2023" -ItemType Directory -Path $_.fullname  

Ausführen im übergeordneten Verzeichnis.

hth

Erik

Lieber Erik,

vielen Dank für die Hilfe und Unterstützung.

LG
Philipp