Automatisch erweitende Ordnernamen (Schleife?)
Hallo wiedermal
Ich will etwas schreiben womit ich Ordner Namen automatisch "erweitern" kann.
also so
if not exist D:\blabla md D:\blabla
if exist D:\blabla md D:\blabla (2)
if exist D:\blabla (2) md D:\blabla (3)
so in die richtung mir schon klar das das so nicht geht.
also es soll sich automatisch bis ins unendliche weiter gehen.
Und ich weiß nicht wie.
und eine Frage noch wie kann ich den benutzernamen von dem der gerade angemeldet ist anzeigen? so ähnlich wie %date%
Danke im voraus
Thomas
Ich will etwas schreiben womit ich Ordner Namen automatisch "erweitern" kann.
also so
if not exist D:\blabla md D:\blabla
if exist D:\blabla md D:\blabla (2)
if exist D:\blabla (2) md D:\blabla (3)
so in die richtung mir schon klar das das so nicht geht.
also es soll sich automatisch bis ins unendliche weiter gehen.
Und ich weiß nicht wie.
und eine Frage noch wie kann ich den benutzernamen von dem der gerade angemeldet ist anzeigen? so ähnlich wie %date%
Danke im voraus
Thomas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 65359
Url: https://administrator.de/forum/automatisch-erweitende-ordnernamen-schleife-65359.html
Ausgedruckt am: 23.12.2024 um 06:12 Uhr
8 Kommentare
Neuester Kommentar
Moin Tompazi,
Gibt es für so einen ...hmmmm... Plan eine überzeugende Notwendigkeit?
Das sieht doch so elegant aus wie Münteferings Socken.
Was steht den für ein Prozess/für ein Ablauf dahinter?
Grüße
Biber
und gewöhnt euch das "Danke im Voraus" ab, sonst werd ich ausschweifend...*gg
- zur zweiten Teilfrage: das steht in der Variable %username%, die immer gesetzt ist.
- zur ersten Teilfrage: Handwerklich lösbar, aber als Idee nicht von bestechendem Charme.
Gibt es für so einen ...hmmmm... Plan eine überzeugende Notwendigkeit?
Das sieht doch so elegant aus wie Münteferings Socken.
Was steht den für ein Prozess/für ein Ablauf dahinter?
Grüße
Biber
und gewöhnt euch das "Danke im Voraus" ab, sonst werd ich ausschweifend...*gg
Moin Tompazi,
Danke für das %username% gibt es irgendwo eine liste von diesen dingen?
Alle Umgebungsvariablen werden Dir durch Eingabe von "Set" am CMD-Prompt angezeigt.
Ein bisschen was dazu steht auch in der Hilfe (Set /?).
Du könntest den "höchsten" angelegten Ordner in einer FOR /L- Anweisung ermitteln.
Bsp im Batch:
[statt "unendlich" habe ich oben mal als Max-Wert 222 gesetzt.]
Aber nobelpreisverdächtig ist das alles nicht...
.....sieht doch shice aus im Ergebnis...
Grüße
Biber
Danke für das %username% gibt es irgendwo eine liste von diesen dingen?
Alle Umgebungsvariablen werden Dir durch Eingabe von "Set" am CMD-Prompt angezeigt.
Ein bisschen was dazu steht auch in der Hilfe (Set /?).
Du könntest den "höchsten" angelegten Ordner in einer FOR /L- Anweisung ermitteln.
Bsp im Batch:
...
...(nur wenn es wenigstens EINEN Ordner mit diesem Pseudo-Index gibt)
Set Idx=2
for /l %%i in (%idx%,1,222) do if exist "d:\temp\blabla(%%i)" set "idx=%%i"
REM wenn der "höchste" Ordner bis jetzt "d:\temp\blabla(47)" war, ist %idx% jetzt 47
set /a idx+=1
REM jetzt wäre %idx% gleich 48
Md "d:\temp\blabla(%idx%)"
Aber nobelpreisverdächtig ist das alles nicht...
.....sieht doch shice aus im Ergebnis...
Grüße
Biber
Hmm...<grinz>...
würde sich das Verhalten Deines Schnipsels eventuell geringfügig ändern, wenn Du überall als Variablennamen "dataname" verwendest und nicht drei verschiedene Variationen (dataname, datname und dateiname)? *wimpernklapp*
Bei mir hat das schon mal geholfen! *TippGeb*
P.S. Das "temp" hatte ich nur in meinem separaten Demo-Beispiel verwendet...
Hat keinen Bezug zu Deinem Schnipsel.
Grüße
Biber
würde sich das Verhalten Deines Schnipsels eventuell geringfügig ändern, wenn Du überall als Variablennamen "dataname" verwendest und nicht drei verschiedene Variationen (dataname, datname und dateiname)? *wimpernklapp*
Bei mir hat das schon mal geholfen! *TippGeb*
P.S. Das "temp" hatte ich nur in meinem separaten Demo-Beispiel verwendet...
Hat keinen Bezug zu Deinem Schnipsel.
Grüße
Biber
Moin Tompazi,
sorry, eine mögliche Fehlersache hab ich gestern überlesen.
Das GOTO hängt ja syntaktisch in der Luft.
Zur zweiten Frage: Den %random%-Bereich auf bestimmte Ober-/Untergrenzen festlegen..
Im Prinzip genau wie mit anderen Skriptsprachen auch, handwerklich allerdings mit dem Modulo-Operator.
Grüße
Biber
sorry, eine mögliche Fehlersache hab ich gestern überlesen.
Das GOTO hängt ja syntaktisch in der Luft.
...
REM ?? if /i "%dataname%"=="J" set "dataname=USB Stick %date:~-10,2% %monat% %date:~-4%" GOTO :check
REM gemeint vermutlich:
if /i "%dataname%"=="J" (
set "dataname=USB Stick %date:~-10,2% %monat% %date:~-4%"
GOTO :check
)
...
Zur zweiten Frage: Den %random%-Bereich auf bestimmte Ober-/Untergrenzen festlegen..
Im Prinzip genau wie mit anderen Skriptsprachen auch, handwerklich allerdings mit dem Modulo-Operator.
REM Bsp: Random-Wert SOLL zwischen 13 (incl.) und 296 liegen
REM %random% IST immer zwischen 0 und 32767, das ist halt so im CMD-Kontext.
Set /a "myMin=13" & Set /a "myMax=296"
Set /a "myRandom=%myMin% + (%random% %% %myMax%)"
...
Grüße
Biber