Kann ich eine Batchdatei erstellen, um Unterordner anzulegen und ggf. vorhandene Unterordner umzubenennen?

Kann ich eine Batchdatei erstellen, um Unterordner anzulegen und ggf. vorhandene Unterordner umzubenennen?

Ich habe sehr begrenzte oder gar keine Kenntnisse im Programmieren. Daher bin ich mir nicht sicher, ob dies durch die Erstellung einer Batchdatei möglich ist.

Ich verwende übrigens Windows 10.

Ich habe eine große Datenbank mit „Client“-Ordnern. Vielleicht wäre dies der übergeordnete Ordner, wenn nicht … Es gibt Unterordner für jeden Buchstaben des Alphabets, also den ersten Buchstaben jedes Clientnamens. Es würde also so aussehen:

C:Kunde/A/Adams, Bill

C:Kunde/A/Anderson, Jill

C:Kunde/B/Burgund, Jack

..und so weiter. Es gibt Tausende von Kunden.

Unter jedem einzelnen Client-Ordner (Adams, Bill usw.) muss ich einen Unterordner namens ID & PFP erstellen.

Gibt es eine Stapelverarbeitung, die ich erstellen kann, um automatisch alle mit Buchstaben versehenen Unterordner und die darin enthaltenen nachfolgenden Client-Unterordner zu durchsuchen und innerhalb jedes einzelnen Client-Namens die Unterordner „ID & PFP“ zu erstellen?

Außerdem haben einige dieser Unterordner bereits einen Ordner namens „ID“. Gibt es einen Code, der diese Unterordner innerhalb von Clientnamenordnern erstellen könnte – wenn es keinen Ordner namens „ID“ gibt. Wenn es einen Ordner namens „ID“ gibt, benennen Sie ihn in „ID & PFP“ um?

Mit freundlichen Grüßen

Antwort1

Der folgende Stapel ist das, was Sie brauchen.
Bearbeiten: Unterordner „ID“ hinzugefügt

@echo off
setlocal
  for /f  %%b in ('dir /b /a:d') do (
      rem enter the directory
      pushd %%b
      echo In Directory: %%b

    for /f  %%c in ('dir /b /a:d') do (
      rem enter the directory
      pushd %%c
      echo In Directory: %%c

      IF EXIST ID (
        rem Folder "ID" does exist 
        echo Folder "ID" Renamed to "ID & PFP"
        rename "ID"  "ID & PFP"
        ) ELSE (
        rem Folder "ID" does not exist
        rem create folder
        md "ID & PFP"
        echo Folder: "ID & PFP" created
      )


      rem leave the directory
      popd
     )
      rem leave the directory
      popd
  )
  pause >nul
endlocal

Fügen Sie dies in eine Batchdatei ein und legen Sie es in den übergeordneten Ordner, in dem Sie die Ordner a, b, c usw. haben …

Grundsätzlich geht dieses Skript in jeden Unterordner, in dem es sich befindet, und dann in jeden nächsten Unterordner darunter, um einen Ordner zu erstellen.

In Directory: test
In Directory: child
Folder "ID" Renamed to "ID & PFP"
In Directory: child1
Folder: "ID & PFP" created
In Directory: child2
Folder: "ID & PFP" created
In Directory: test1
In Directory: child
Folder: "ID & PFP" created
In Directory: test2
In Directory: child
Ein Unterverzeichnis oder eine Datei mit dem Namen "ID & PFP" existiert bereits.
Folder: "ID & PFP" created

Antwort2

Der folgende Code erledigt alles, was Sie möchten. Sie können ihn gerne in einen „.txt“-Editor kopieren und mit der Erweiterung „.bat“ speichern (zum Beispiel: „dirHelper.bat“).

Vergessen Sie nicht, eine zweite Zeile von "CD C:\root" auf etwas, das Ihrem Fall entspricht - "CD C:\Client" und lassen Sie ruhig die "Echo"-Anweisungen weg, ich habe sie nur hinzugefügt, damit Sie besser verstehen, was während des Tests passiert, oder um die Ausführung zu protokollieren

@Echo Off
CD C:\root 
echo entered %cd% directory
FOR /D %%G in ("*") DO (
    CD %%G 
    echo entered %cd%\%%G directory
    FOR /D %%N in ("*") DO (
        cd %%N
        echo entered %cd%\%%G\%%N directory
        if EXIST ID (
            rename ID "ID & PFP"
            echo Found ID folder inside %cd%\%%G\%%N
            echo ID folder renamed to "ID & PFP"
            CD ..\
        ) else (
            if EXIST "ID & PFP" (
                echo "ID & PFP folder already exist here:" %cd%\%%G\%%N
                CD ..\
            ) else (
                md "ID & PFP"
                echo created "ID & PFP" folder inside %cd%\%%G\%%N directory
                CD ..\

                )
        )
    )
    CD ..\
)
PAUSE

verwandte Informationen