Batch Autostart Umbenennen-Löschen Zeitpunkt
ich möchte alle Dateien der Festplatte/Netzwerks mit der Endung *.bak umbenennen nach *.ba1. (oder evt. löschen)
Dies soll zu einem bestimmten Zeitpunkt geschehen. Datum oder letzter Tag des Monats.
Desweiteren soll diese Batchdatei dieses Batsch in den Autostartordner kopieren, wo es jeden Tag beim Hochfahren gestartet wird.
Wer kann mir hier weiterhelfen?
MfG
Dies soll zu einem bestimmten Zeitpunkt geschehen. Datum oder letzter Tag des Monats.
Desweiteren soll diese Batchdatei dieses Batsch in den Autostartordner kopieren, wo es jeden Tag beim Hochfahren gestartet wird.
Wer kann mir hier weiterhelfen?
MfG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 105203
Url: https://administrator.de/contentid/105203
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
21 Kommentare
Neuester Kommentar
Ungetesteter Versuch:
Die ECHOs ist nur zu testzwecken drin und zeigt an was pasieren würde. Wird es entfernt wird wirklich kopiert/umbenannt.
@echo off
ECHO copy "%~0" "%USERPROFILE%\Startmen*\Programme\Autostart\%~nx0"
FOR /F "delims=" %%i in ('dir /s /b %HOMEDRIVE%\*.bak') do ECHO ren "%%i" "%%~ni.ba1"
ren "%%i" "%%~ni.ba1"
Sollte eigentlich die Dateien umbenennenECHO copy "%~0" "%USERPROFILE%\Startmen*\Programme\Autostart\%~nx0"
Sollte den Batch sich selbst ind en Autostartordner kopieren, vorausgesetzt das ECHO wurde entfernt wie beschrieben.Und den Zeitpunkt der Umbenennung/Löschung möchte ich gerne im Batch eingeben.
Ok das habe ich überlesen. Dafür gibt es den AT befehl oder du führst die batch als geplanten Tast aus, dann muss ie auch nicht im autostart liegen.
Das in die Batch einzutragen ist möglich. Besser wäre allerdings ein geplanter task. Die uhrzeit macht direkt in Batch sont keinen sinn, da sie genau um diese uhrzeit gestertet werden müßte oder duernt als schleife laufen müßte.
Alles in allem sollte das dann so gehen:
Alles in allem sollte das dann so gehen:
@echo off
if "10.01.2009" neq "%date%" goto:eof
ECHO copy "%~0" "%USERPROFILE%\Startmen?\Programme\Autostart\%~nx0"
FOR %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do (
dir %%a:\ >NUL 2>NUL && verarbeite %%a
)
goto:eof
:verarbeite
FOR /F "delims=" %%i in ('dir /s /b %1:\*.bak') do ECHO ren "%%i" "%%~ni.ba1"
goto:eof
Wenn du die Batch startest und dieses Datum ist heute wird die Batch weiter ausgeführt, sonst beendet.
Einen geplanten task kans tud entweder über die Kommandozeile mit dem at befehl anlegen oder du gehst in die Systemsteuerung auf "Geplante Tasks".
Dort kanns tud einen Geplanten tast dan hinzufühgen. Dort kans tud dan auf die Batch verweisen udn die Kontrolle in der Batch selbst brauchst du dan nicht mehr.
Einen geplanten task kans tud entweder über die Kommandozeile mit dem at befehl anlegen oder du gehst in die Systemsteuerung auf "Geplante Tasks".
Dort kanns tud einen Geplanten tast dan hinzufühgen. Dort kans tud dan auf die Batch verweisen udn die Kontrolle in der Batch selbst brauchst du dan nicht mehr.
Ich weiß ncith wie auf deinem PC das Datumsformat ist.
Üffne mal die eingabeaufforderung (ausführen, cmd, enter)
Dort gibst du jetzt ein
Weiterhin kansnt zu zur besseren fehlersuche das "@echo off" in "@echo on" ändern.
Dan solltest du sehen was ausgeführt wird
Üffne mal die eingabeaufforderung (ausführen, cmd, enter)
Dort gibst du jetzt ein
echo %date%
So wie es dort steht sollte es auch bei dir dan eingetragen werden.Weiterhin kansnt zu zur besseren fehlersuche das "@echo off" in "@echo on" ändern.
Dan solltest du sehen was ausgeführt wird
Dann versuchs mal damit:
@echo off
if "05.01.2009" neq "%date%" goto:eof
ECHO copy "%~0" "%USERPROFILE%\Startmen?\Programme\Autostart\%~nx0"
FOR %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do verarbeite %%a
goto:eof
:verarbeite
dir %%1:\ >NUL 2>NUL || goto:eof
FOR /F "delims=" %%i in ('dir /s /b %1:\*.bak') do ECHO ren "%%i" "%%~ni.ba1"
goto:eof
Ichhatte ien cal vergessen:
@echo off
if "05.01.2009" neq "%date%" goto:eof
ECHO copy "%~0" "%USERPROFILE%\Startmen?\Programme\Autostart\%~nx0"
FOR %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do call:verarbeite %%a
goto:eof
:verarbeite
dir %1:\ >NUL 2>NUL || goto:eof
FOR /F "delims=" %%i in ('dir /s /b %1:\*.bak') do ECHO ren "%%i" "%%~ni.ba1"
goto:eof
Habs jetzt bei mir testen können und so Funktioniert es bei mir:
@echo off
if "06.01.2009" neq "%date%" goto:eof
copy "%~f0" "%USERPROFILE%\STARTM~1\Programme\Autostart\%~nx0"
FOR %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do call:verarbeite %%a
goto:eof
:verarbeite
dir %1:\ >NUL 2>NUL || goto:eof
echo Suche nach Dateien in %1:\
FOR /F "delims=" %%i in ('dir /s /b %1:\*.bak') do ECHO ren "%%i" "%%~ni.ba1"
goto:eof