Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Automatisch erweitende Ordnernamen (Schleife?)

Frage Entwicklung Batch & Shell

Mitglied: Tompazi

Tompazi (Level 1) - Jetzt verbinden

02.08.2007, aktualisiert 03.08.2007, 3425 Aufrufe, 8 Kommentare

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
Mitglied: Biber
02.08.2007 um 23:49 Uhr
Moin Tompazi,

  • 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
Bitte warten ..
Mitglied: Tompazi
02.08.2007 um 23:54 Uhr
naja ich will so was da ein bauen

@echo off
title USB Stick %date:~-10,2%.%date:~-7,2%.%date:~-4%
IF NOT exist M:\ goto Antwort0
setlocal
set "monat1=%date:~-7,2%"
if "%monat1%"=="01" set "monat=Jänner"
if "%monat1%"=="02" set "monat=Februar"
if "%monat1%"=="03" set "monat=März"
if "%monat1%"=="04" set "monat=April"
if "%monat1%"=="05" set "monat=Mai"
if "%monat1%"=="06" set "monat=Juni"
if "%monat1%"=="07" set "monat=Juli"
if "%monat1%"=="08" set "monat=August"
if "%monat1%"=="09" set "monat=September"
if "%monat1%"=="10" set "monat=Oktober"
if "%monat1%"=="11" set "monat=November"
if "%monat1%"=="12" set "monat=Dezember"
set /p "dataname= Beispiel Ordner Namen verwenden (USB Stick %date:~-10,2% %monat% %date:~-4%) (J/N)?"

::HIER
if /i "%dataname%"=="J" set "datname=USB Stick %date:~-10,2% %monat% %date:~-4%"

GOTO :copy
if /i "%dataname%"=="N" set /p "datname= Geben Sie den einen Ordnernamen ein:"
GOTO :copy
:copy
XCOPY M:\ "D:\%datname%" /I /E
goto Antwort1
:Antwort0
echo Der USB Stick ist nicht korrekt Angesteckt!
echo Beachten Sie, dass der USB Stick Vorne am PC angesteckt sein muss.
echo Sollten Sie alles Richtig befolgt haben und Dies erscheint immer noch
echo kontaktieren Sie Bitte den Produzenten der Batch Datei.
pause
exit
:Antwort1
echo Die Dateien Ihres USB Sticks wurden erfolgreich nach D:\%datname%
echo kopiert.
echo.
set /p "Antwort=Dateien auf dem Stick entfernen (J/N)?"
if /i "%Antwort%"=="J" goto :Loeschen
echo Keine Daten entfernt ...
Goto :open
pause
exit
:Loeschen
rd /s /q M:echo Daten wurden entfernt...
echo.
PING 127.0.0.1 -n 6 >nul
echo Der USB Stick kann jetzt ausgesteckt werden.
:open
echo.
set /p "open= Ordner aufmachen? (J/N)"
if /i "%open%"=="J" start D:\"%datname%"
pause
Danke für das %username% gibt es irgendwo eine liste von diesen dingen?

Danke

Thomas
Bitte warten ..
Mitglied: Biber
03.08.2007 um 00:08 Uhr
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:
01.
... 
02.
...(nur wenn es wenigstens EINEN Ordner mit diesem Pseudo-Index gibt) 
03.
 
04.
Set Idx=2 
05.
for /l %%i in (%idx%,1,222) do if exist "d:\temp\blabla(%%i)" set "idx=%%i" 
06.
REM wenn der "höchste" Ordner bis jetzt "d:\temp\blabla(47)" war, ist %idx% jetzt 47 
07.
set /a idx+=1 
08.
REM jetzt wäre %idx% gleich 48 
09.
Md "d:\temp\blabla(%idx%)" 
10.
 
[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
Bitte warten ..
Mitglied: Tompazi
03.08.2007 um 00:24 Uhr
Erstmal Danke
Frage wieso das temp?
Ich habs (dumm wie ich bin) gleich mal verändert -.- .
Und so geht es nicht.

set /p "dataname= Beispiel Ordner Namen verwenden (USB Stick %date:~-10,2% %monat% %date:~-4%) (J/N)?"
if /i "%dataname%"=="J" set "datname=USB Stick %date:~-10,2% %monat% %date:~-4%" GOTO :check
if /i "%dataname%"=="N" set /p "dateiname= Geben Sie den einen Ordnernamen ein:"
GOTO :copy
:check
Set Idx=2
for /l %%i in (%idx%,1,22) do if exist "d:\%dataname%(%%i)" set "idx=%%i"
set /a idx+=1
set "dateiname=%dataname%(%idx%)"
:copy
XCOPY M:\ "D:\%dateiname%" /E
goto Antwort1
Bitte warten ..
Mitglied: Biber
03.08.2007 um 00:48 Uhr
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
Bitte warten ..
Mitglied: Tompazi
03.08.2007 um 01:04 Uhr
so? geht trotzdem nicht...
es macht noch immer nur den "USB Stick %date:~-10,2% %monat% %date:~-4%" Ordner
Und noch eine frage weil ich grad bei set nachgeschaut hab kann man %random% irgendwie eingrenzen also nicht das zwischen 0 und 32767 is sondern 1-100?
set /p "dataname= Beispiel Ordner Namen verwenden (USB Stick %date:~-10,2% %monat% %date:~-4%) (J/N)?"
if /i "%dataname%"=="J" set "dataname=USB Stick %date:~-10,2% %monat% %date:~-4%" GOTO :check
if /i "%dataname%"=="N" set /p "dataname= Geben Sie den einen Ordnernamen ein:"
GOTO :copy
:check
Set Idx=2
for /l %%i in (%idx%,1,222) do if exist "d:\%dataname%(%%i)" set "idx=%%i"
set /a idx+=1
set "dataname=%dataname%(%idx%)"
:copy
XCOPY M:\ "D:\%dataname%" /I /E
goto Antwort1
Thomas
Bitte warten ..
Mitglied: Biber
03.08.2007 um 06:44 Uhr
Moin Tompazi,

sorry, eine mögliche Fehlersache hab ich gestern überlesen.
Das GOTO hängt ja syntaktisch in der Luft.
01.
... 
02.
REM ?? if /i "%dataname%"=="J" set "dataname=USB Stick %date:~-10,2% %monat% %date:~-4%" GOTO :check 
03.
REM gemeint vermutlich: 
04.
if /i "%dataname%"=="J" (  
05.
        set "dataname=USB Stick %date:~-10,2% %monat% %date:~-4%"  
06.
        GOTO :check 
07.
08.
...
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.

01.
REM Bsp: Random-Wert SOLL zwischen 13 (incl.) und 296 liegen 
02.
REM %random% IST immer zwischen 0 und 32767, das ist halt so im CMD-Kontext. 
03.
Set /a "myMin=13" & Set /a "myMax=296" 
04.
Set /a "myRandom=%myMin% + (%random% %% %myMax%)" 
05.
...
Grüße
Biber
Bitte warten ..
Mitglied: Tompazi
03.08.2007 um 15:02 Uhr
Hallo
es funktioniert schon fast.
es erstellt leider gleich einen "USB Stick %date:~-10,2% %monat% %date:~-4% (3)" Ordner.
set /p "dataname= Beispiel Ordner Namen verwenden (USB Stick %date:~-10,2% %monat% %date:~-4%) (J/N)?"
if /i "%dataname%"=="J" (
set "dataname=USB Stick %date:~-10,2% %monat% %date:~-4%"
GOTO :check
)
if /i "%dataname%"=="N" set /p "dataname= Geben Sie den einen Ordnernamen ein:"
GOTO :copy
:check
Set Idx=2
for /l %%i in (%idx%,1,222) do if exist "d:\%dataname%(%%i)" set "idx=%%i"
set /a idx+=1
set "dataname=%dataname%(%idx%)"
:copy
XCOPY M:\ "D:\%dataname%" /I /E
Und ein weiteres Porblem das vorher nicht da war

set /p "open= Ordner aufmachen? (J/N)"
if /i "%open%"=="J" start D:\%dataname%

Wenn ichs so mache sagt er D:\Usb nicht gefunden
---

if /i "%open%"=="J" start D:\"%dataname%"

So hab ichs vorher gehabt und es hat funktionert aber jetzt sagt er mir D:\"Usb stick ..." nicht gefunden

---
if /i "%open%"=="J" start "D:\%dataname%"

Und so öffnets logischerweise ein neuses cmd Fenster

Danke
Thomas
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
Schleife mit todos CMD

Frage von TommyDerWalker zum Thema Batch & Shell ...

Microsoft Office
Registerkarte in Excel automatisch färben (10)

Frage von ralfkausk zum Thema Microsoft Office ...

Windows Server
Jnlp Endungen mit Java automatisch verknüpfen über GPO (10)

Frage von staybb zum Thema Windows Server ...

Batch & Shell
gelöst Fehler in Schleife (2)

Frage von miczar zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...