Jump to content

Biber

Members
  • Content Count

    97
  • Joined

  • Last visited

Community Reputation

10 Neutral

About Biber

  • Rank
    Junior Member
  1. Moin HerrPi, die gute Nachricht zuerst: du hast eigentlich keinen Denkfehler in deinem Schnipsel. Schlechte Nachricht: die Variablenableitung mit [%]%~t kann keine Sekunden liefern. Kurze Simulation am CMD-Prompt >for %i in (user*.txt) do @echo %i %~ti Userids.txt 13.04.07 16:54 userlist.txt 14.05.08 07:07 [/Code] ---> die Datum/Zeit-Auflösung geht maximal runter auf Minutengenauigkeit. Workaround a) [i][Recommended][/i] Änderung des Plans - Prüfen, ob eine Umbenennung auf Namen mit Sekundengenauigkeit ganz ganz wirklich ganz ganz unbedingt erforderlich ist. b) Wenn
  2. Moin Blade, sorry, ich hatte vorhin zu flüchtig auf das Originalbeispiel geschaut und in meinem Beispiel nicht den Suchstring "-A", sondern den String "A-1" verwendet. Irgendeine Freud'sche Fehlleistung, nehme ich an. Anyhow, hier nochmal das Ganze in epischer Breite und schrittweise am CMD-Prompt hergeleitet. Die Zeilen, die mit ">" beginnen, sind die Eingaben. Das ">" NICHT mit eingeben. >set testusername=Benutzer-a01 >echo Benutzer: [%testusername%] Benutzer: [benutzer-a01] >echo %testusername%|find /i "-a" Benutzer-a01 >echo %errorlevel% 0 >echo %testu
  3. Moin Blade, eine etwas kürzere Variante wäre (Beispiel zum Test am CMD-Prompt): echo %username%|find /i "a-1">nul && @echo Ist ein A-1-User -bzw- echo %username%|find /i "a-1">nul || @echo Issn DAU [/Code] In Deinem batch entsprechend [Code] .... echo %username%|find /i "a-1">nul && goto :weiterBeiA1Usern ... [/Code] Grüße Biber
  4. ...oder aber, wenn die aufzurufende Batchdatei nun defrag.bat/defrag.cmd heißen soll, dann muss eben die "Defrag.exe" aus diesem Batch heraus mit vollständiger Pfadangabe aufgerufen werden. Beispel in der Batch: [/Code] ... :: statt des flapsigen "defrag C: /v" %windir%\system32\defrag.exe C: /v ... [/Code] Grüße Biber
  5. Hm, ich wette den rechten Arm meines Cheffes, dass die Batchdatei "defrag.cmd" oder "defrag.bat" heißt... ;-) ich würde die mal vor weiteren Tests umbenamsen. Grüße Biber
  6. Moin Errorsmith, ich möchte hier nur den handwerklichen Teil kurz abhandeln. Den konzeptionellen solltest Du noch mal gesondert für Dich klären. Umbenennen von Dateien auf yyyymmdd-hhmm-dateiname.ext: for %f in (*.*) do @for /f "tokens=1-5 delims=:. " %i in ("%~tf") do @echo Ren "%f" "20%k%j%i-%l%m_%~nxf" [/Code] (Proof-of-Concept-Skizze am Cmd-Prompt; im Batch alle %-Zeichen durch %% ersetzen.) Jetzt das ABER. Du willst ja (vermutlich) nur die Dateien umbenennen, die Datum/Uhrzeit noch nicht im Namen haben. Wenn Du aber so einenEinzeiler alle 10 Minuten über Taskplaner oder
  7. Moin michel0203, bei dieser speziellen Problematik empfehle ein pragmatisches Vorgehen. Soll heißen: "Lange dauern" wird es so oder so - und die Hauptlast der Verarbeitung liegt ja nicht in der abzubildenden Rekursivität (respektive der möglichen Eleganz der Implementierung mit dieser oder jener Skriptsprache), sondern auf dem ganz banalen Verzeichnis-Auslesen. Dabei kommt ziemlich schnell raus: keine VBS/WSH-Nachprogrammierung ist auch nur ansatzweise zu effektiv wie der stinknormale DIR-Befehl. Deshalb kannst Du das bisschen Rest-Geeiere auch mit ein paar simplen CMD-Batch-Zeilen zusa
  8. Moin jfish, wie Dr.Kiffer schon schrieb... Und zwar wegen der Pipe-Verkettung " find ...|IF %ERRORLEVEL% == 0..." . Gemeint ist ja, dass nur wenn etwas gefunden wurde eine Aktion stattfindet. Richtiger wäre also dann die "logische UND-Verknüpfung" mit "&&" net localgroup administrators|find /I "grp" >nul && @echo %computername% >> txt [/Code] Grüße Biber
  9. Moin fmessner, wenn Du eine tägliche (= 7 Tage pro Woche) Sicherung jedesmal in "das andere" Verzeichnis speichern willst, dann würde ich eher ein Robocoby-Logfile schreiben und dort nachschauen... da steht doch immer das Zielverzeichnis "ZielA" bzw "ZielB" drin. ->find "ZielA" robbies.log erfolreich-> dann mach es heute nach ZielB. --> et vice versa. ODER aber: Dir reichen 6 Sicherungs-Tage pro Woche-> dann Mo, Mi, Fr nach ZielA, Di, Do und Sa nach ZielB. Dann kann das auch ein/e Taskplaner/in. Grüße Biber
  10. Moin fmessner, hast Du denn eher eine spanische Win95-Installation oder eine isländische Vista Business-Variante? Ich frage nur, falls wir irgendwie den Tag-des-Monats brauchen sollten und das %date% auslesen... Na ja, ist auch wurscht.... wenn Du eh Robocopy griffbereit hast, machen wir es so: [Demo am CMD-Prompt] for /f "tokens=5" %i in ('robocopy ^|find "Started"') do @set /a "10%i % 2"|find "0" >nul && echo Goto :gerade [/Code] Erläuterung: Robocopy gibt beim Aufruf ohne Parameter (genau) eine Zeile mit dem Word "Started" aus. In dieser steht als 5. token d
  11. Moin, in Batchdateien maskierst du ein Prozentzeichen (z.B. bei Variablennamen) durch Verdopplung. CMD: @Echo Mein ^%username^% ist [%username%] Batch. @echo Mein %%username%% ist [%username%] ---- CMD: setx.exe INI_HOME ^%KASTOS1_HOME^%\dat\procini -m Batch: setx.exe INI_HOME %%KASTOS1_HOME%%\dat\procini -m Grüße Biber P.S. Lernt ihr denn gar nichts in Medrond?
  12. Moin El Kassem, in den temporären Outlook-Anhang-Trümmern sind doch die ganzen direkt "in der Mail" doppelgeklickten *.pdfs, *.xls, *.doc, *.ppts etc die so in Unternehmen per Mail rumwandern. Und speziell bei Word haben es die Redmonder ja noch nie hinbekommen, dass jede "$~(restDes Word-Doc-Namens)"-Datei, die beim Öffnen angelegt wird auch wieder nach Beendigung zu löschen. Und diese "$~.."-Dateien sind "versteckt" (Hidden-Attribut) und manchmal auch noch zusätzlich "S" (System-) Dateien. Warum auch immer. Teste es und mach mal ein "Attrib /s "%olkroot%\$~*.*" , dann siehst du d
  13. Moin El Kassem, die Batch-Variante zu blubs Lösung wäre @echo off & setlocal Set "olkroot=C:\Dokumente und Einstellungen\user\Lokale Einstellungen\Temporary Internet Files" For /d %%i in ("%olkroot%\OLK*") do @ECHO del "%%i\*.*" /s /q [/Code] Das ECHO nur zum Proof-of-Concept; wenn es passt: weglassen. Grüße Biber
  14. Moin edocom, wenn Du aber gerade nur den CMD-Prompt und die "Net User"-Abfragemöglichkeit hast, dann: >@(echo UserName: %username%) &net user %username% /domain|findstr /C:"Kennwort läuft ab" Username: Biber Kennwort läuft ab 9/16/2008 2:10 PM ... so wäre der Schnellschuss vom Prompt aus. [Eingabezeile beginnt mit ">"; der Rest ist Output] Es in den Schnipsel oben einzubauen traue ich Dir zu... ;-) Grüße Biber
×
×
  • Create New...