121355
Goto Top

Variable um eine Datei immer wiederzu löschen?

Hallo liebe Admins!

Ich habe nach langer Zeit des Windows10-ens und Batchens mal wieder ein Problem: Ich bekommen keine Variable gebacken, die mir eine bestimmte Datei immer wieder löscht. Bei jedem Start eines Programmes wird ein Log angelegt; diesen Vorgang kann man, meines Wissens nach, nicht umgehen bzw. unterbinden.

Gibt es also ein Batch- oder Shell-Kommando, welches ich irgendwie immer wieder wiederholen kann? Wenn ja, bräuchte ich Variable, wenn möglich einen Code von ihr, und eine Erklärung, warum und wie das funktioniert.

Euer
DeBeden

P.S.: Mit
del "[//File-path//]"  
habe ich es schon versucht! (Batch)

Content-Key: 284761

Url: https://administrator.de/contentid/284761

Printed on: April 23, 2024 at 12:04 o'clock

Member: Snowman25
Solution Snowman25 Oct 06, 2015, updated at Oct 16, 2015 at 14:49:55 (UTC)
Goto Top
Hallo @121355,

also als aller erstes solltest du dir mal darüber klar werden, was eine Variable ist.

Sobald du damit fertig hast schaust du dir mal den Aufgabenplaner an.
Da erstellst du eine neue Aufgabe, welche in deinem gewünschten Intervall läuft und lässt folgendes Batch-Skript laufen:
del "<voller Pfad zur Logdatei>"  

Beachte, dass sich das Log wahrscheinlich nicht löschen lässt, während das Programm läuft.

Gruß,
@Snowman25


€dit:
Hier das XML-File, welches du in die Aufgabenplanung importieren kannst:
<?xml version="1.0" encoding="UTF-16"?>  
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">  
  <RegistrationInfo>
    <Date>2015-10-06T18:17:44.9831164</Date>
    <Author>SomePC\SomeUser</Author>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <Repetition>
        <Interval>PT10M</Interval>
        <StopAtDurationEnd>false</StopAtDurationEnd>
      </Repetition>
      <StartBoundary>2015-10-06T00:00:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByDay>
        <DaysInterval>1</DaysInterval>
      </ScheduleByDay>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">  
      <UserId>SomePC\SomeUser</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>true</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
    <UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">  
    <Exec>
      <Command>del</Command>
      <Arguments>"C:\Users\SomeUser\AppData\Roaming\Programm\dummes log.log"</Arguments>  
    </Exec>
  </Actions>
</Task>
Achte darauf, dass du in Zeile 5 und 22 deinen Useraccount einträgst und in Zeile 51 den Pfad zur Datei anpasst.
Mitglied: 121355
121355 Feb 21, 2016 at 17:16:35 (UTC)
Goto Top
Ich habe mir das jetzt nach der Ewigkeit nochmal angeguckt und festgestellt, dass ich das so erst noch bestätigen müsste. Geht das auch irgendwie automatisch?
Member: Snowman25
Snowman25 Feb 22, 2016 updated at 07:52:28 (UTC)
Goto Top
klar.
Hier die Hilfe von del:
Löscht eine oder mehrere Dateien.

DEL [/P] [/F] [/S] [/Q] [/A[[:]Attribute]] Namen
ERASE [/P] [/F] [/S] [/Q] [/A[[:]Attribute]] Namen

  Namen         Gibt eine Liste von Dateien oder Verzeichnissen an.
                Platzhalter können verwendet werden, um mehrere Dateien zu
                löschen. Wird ein Verzeichnis angegeben, werden alle Dateien
                in diesem Verzeichnis gelöscht.
  /P            Fordert Sie vor dem Löschen jeder Datei zur Bestätigung auf.
  /F            Erzwingt das Löschen schreibgeschützter Dateien.
  /S            Löscht alle Dateien in allen Unterverzeichnissen.
  /Q            Keine Rückfrage bei Verwendung globaler Platzhalter.
  /A            Wählt die zu löschenden Dateien nach dem Attribut aus.
  Attribute     R  Schreibgeschützte Dateien     S  Systemdateien
                H  Versteckte Dateien            A  Zu archivierende Dateien
                I  Nicht indizierte Dateien      L  Analysepunkte
                -  vorangestellt kehrt die Bedeutung um.

Wenn die Befehlserweiterungen aktiviert sind, werden DEL und ERASE
folgendermaßen verändert:

Die Anzeigesemantik für die /S-Option ist umgekehrt, so dass nur Dateien
angezeigt werden, die gelöscht wurden und nicht solche, die nicht
gefunden wurden.

del /Q <Pfad zur Logdatei>

Wenn du das in der XML-Datei ändern möchtest, musst du Zeile 51 um folgendes ersetzen:
      <Arguments>/Q "C:\Users\SomeUser\AppData\Roaming\Programm\dummes log.log"</Arguments>   

Gruß,
@Snowman25