limbodance
Goto Top

Batch - zum kopieren einer Datei in den letzten Unterordner

Bezug auf - https://www.administrator.de/index.php?content=32961

Hallo zusammen,

in 2006 ist mal eine schöne bat geschrieben worden (Txt datei in verschiedene Ordner kopieren
), die auf die jeweiligen "direkten" Ordner verweist.


@echo off & setlocal
Set "inputdir=C:\index"
Set "Userroot=C:\Joomla"
:Rem Löschen, falls vorhanden; danach kopieren
for %%i in (%inputdir%\ /E index.html) do @for /f %%a in ('dir /b /A /E:D %userroot%') do (if exist %userroot%\%%~nxa\%%~nxi copy %inputDir%\%%~nxi %userroot%\%%~nxa\%%~nxi)
cls


Jetzt habe ich das Problem, daß in meiner Seite (Joomla), von einem Hacker (theHacker own3d.), alle index Dateien überschrieben wurden.
Gesamt sind das 1091 dateien die ich neu (über)schreiben müßte. Wer will das schon.
Das geht aber bis in bis zu 6-7 Ebenen.

Daher die Frage, wie ich die obige *.bat verändere, das auch im letzten Unterordner die Index. html wieder mit der richtigen überschrieben werden kann.

Im Voraus für die Hilfe vielen Dank!!!


Limbo

Content-Key: 136658

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

Printed on: April 25, 2024 at 13:04 o'clock

Member: Biber
Biber Feb 23, 2010 at 14:25:30 (UTC)
Goto Top
Moin LimboDance,

willkommen im Forum.

das geht nach neueren Erkenntnissen kürzer und elegante mit einer halbzeile vom CMD-Prompt aus.

Und zwar mir der "Replace.exe" -Datei.

>replace /?
Ersetzt Dateien.

REPLACE [Laufwerk1:][Pfad1]Datname [Laufwerk2:][Pfad2] [/A] [/P] [/R] [/W]
REPLACE [Laufwerk1:][Pfad1]Datname [Laufwerk2:][Pfad2] [/P] [/R] [/S] [/W][/U]

  [Laufwerk1:][Pfad1]Datname    Die Quelldatei(en)
  [Laufwerk2:][Pfad2]           Das Verzeichnis, in dem Dateien ersetzt
                                werden sollen.
  /A        Fügt neue Dateien dem Zielverzeichnis hinzu. Kann nicht mit den
            Optionen /S oder /U verwendet werden.
  /P        Fordert vor dem Ersetzen oder Hinzufügen einer Datei zur
            Bestätigung auf.
  /R        Ersetzt sowohl schreibgeschützte als auch ungeschützte Dateien.
  /S        Ersetzt auch Dateien in Unterverzeichnissen des
            Zielverzeichnisses. Kann nicht zusammen mit der Option /A
            verwendet werden.
  /W        Wartet am Beginn auf das Einlegen einer Diskette.
  /U        Ersetzt (aktualisiert) nur Dateien, die älter als die Quelldateien
            sind. Kann nicht zusammen mit der Option /A verwendet werden.

Die ist genau gegen deinen Skript-Kiddie-Befall geschrieben worden.

Grüße
Biber
Member: bastla
bastla Feb 23, 2010 at 22:24:03 (UTC)
Goto Top
Hallo Limbodance und auch von mir ein Willkommen!

Falls Du nicht in jeden Ordner die selbe "index.html" kopieren, sondern diese aus der "Parallelstruktur" unterhalb von "C:\index" übernehmen willst, dann etwa so:
@echo off & setlocal
set "inputdir=C:\index"  
set "Userroot=C:\Joomla"  

for /f "delims=" %%i in ('dir /s /b "%Userroot%\index.html"') do set "Ziel=%%i" & call :Kopieren  
goto :eof

:Kopieren
call set "Quelle=%inputdir%%%Ziel:%Userroot%=%%"  
copy "%Quelle%" "%Ziel%" >nul 2>&1 || echo Nicht ersetzt: %Ziel%  
goto :eof
Grüße
bastla
Member: Limbodance
Limbodance Feb 24, 2010 at 06:38:15 (UTC)
Goto Top
Hätte nie gedacht, das hier so schnell eine Lösung auftaucht. Hochachtung! Habe ich mich ja endlich mal im "richtigen" Portal angemeldet.
Vielen Dank!

PS.: werde nicht mehr den Begriff "Hacker" für diesen Skript-Kiddie verwenden, sondern nur "Cracker"
Member: Limbodance
Limbodance Feb 24, 2010 at 07:01:50 (UTC)
Goto Top
Nett die Bergrüßung, danke Bastla!
Leider ist dieses Skript nicht was ich brauche. In der C:\index liegt meine orig. index.html und soll tatsächlich über andere index.html die gefunden werden kann geschrieben werden.

Mein Kollegen hat mir jetzt mit der Replacevariante das Skript gebastelt: "REPLACE C:\index\index.html C:\Joomla /s"


Danke Detlef!


adm_logo



PS.: Ich hoffe ich muss hier in Zukunft nichts mehr posten!