Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Txt datei in verschiedene Ordner kopieren

Mitglied: 30452

30452 (Level 1)

21.05.2006, aktualisiert 24.05.2006, 10601 Aufrufe, 8 Kommentare

Hallo,

ich habe folgendes Problem. Ich muss jede Woche 2 Mal Aktualisierungen einer Datei, die mir per Mail geschickt wird auf dem Server verteilen. Auf dem Server sind unter C:\User\ etwa 250 verschiedene Unterordner. Ich musste bisher also 500 Kopien pro Woche machen. Dies erscheint mir aber per Batch wesentlich einfacher zu sein. Die zu kopierende Datei befindet sich auf meinem Rechner, da es sich durchaus sogar um verschiedene Dateien handelt wäre eine Abfrage welche Datei zu kopieren ist ganz hilfreich. Diese Datei muss nun in besagte 250 Ordner auf dem Server. Gibt es eine Möglichkeit die Unterordner auszulesen und dann mit der zu kopierenden Datei zu bestücken? Die Ordner haben keine weiteren Unterordner also können wir diesen Fall ausschliessen. Und wenn eine Backupdatei noch vor dem kopieren auf meinem Rechner als BackupDatum.dateiendung angelegt würde wäre die ganze Sache perfekt. Vielen Dank im Vorraus für eure Hilfe
Mitglied: Biber
21.05.2006 um 21:36 Uhr
Moin SiggiAZE,

das Kernstück der Lösung ist recht simpel (Beispiel vom CMD-Prompt aus):
01.
$cmd$For /f %i in ('dir /b C:\user /a:D') do Copy <i>ZuKopierendeDatei.xyz</i> %i
Um diese Zeile herum kannst Du es in verschiedene Richtungen verfeinern:
a) Wenn Du tatsächlich vorher gefragt werden willst, welche Datei(en) kopiert werden sollen, dann ggf. ein
Set /P "files2copy=Welche Datei[en] kopieren? "
vorwegschreiben.
b) Würde ich aber anders machen:
Ich würde mir einen Unterordner "\Files2copy" oder ähnlich einrichten, Alles, was dort drin steht am Montag und Donnerstag (oder wann immer Deine neuen Dateien kommen) wird kopiert. Feddich. Wenn alles kopiert ist, dann verschieben in "\FilesCopied".
c) LogDatei mit Datumssuffix
In den Tutorials im Bereich Batch & Shell sind ein paar Beispiele, wie Du aus einem Datum einen Teilstring für einen Log-Dateinamen basteln kannst (Workshop Batch for Runaways III)

d) Erfolgskontrolle
Wenn Du protokollieren willst, welche Clientverzeichnisse diese neue Datei als Kopie erhalten haben, dann würde ich nach der Zeile mit dem Kopieren einfach ein "Dir /b /s c:\user\ZuKopierendeDatei.xyz>\\meinServer\MeineLogs\Log_vonYYYY-MM-TT.log" machen.
Du kopierst doch in alle User-Verzeichnisse, die zu diesem Zeitpunkt angelegt worden sind.
Wenn ein User erst am Dienstag angelegt wird, hat er eben am Montag noch keine neue Datei erhalten. Und weiter?

e) Wenn Du auf das manuelle Abfragen "Welche Datei kopieren?" verzichten kannst, dann kannst Du den Batch auch 2x die Woche als Dienst starten.

Gruß
Biber
Bitte warten ..
Mitglied: 30452
21.05.2006 um 22:06 Uhr
Vielen Dank

das hilft mir sehr weiter... die Logdatei denke ich kriege ich selbst hingebastelt. Sollte ja nicht so schwer sein. Da ich direkten Serverzugriff über ein Netzlaufwerk habe ist die Batch ideal dafür gemacht...

Vielen Dank
Bitte warten ..
Mitglied: 30452
23.05.2006 um 14:02 Uhr
So ... nun habe ich folgendes gemacht...

ich habe mir die copy.bat gebastelt, aber leider nicht bedacht, dass die Dateien, die überschrieben werden sollen schreibgeschützt sind. Also denke ich ok -> kriegste in Griff mit attrib ... nix iss... attrib löscht mir einfach den Schreibschutz nicht

attrib -r C:\User /S /D

läuft endlos und macht rein gar nix (User ist übrigens nicht schreibgeschützt)

Also dachte ich mir muss es anders gehen. Ich wollte also nun die Dateien, die kopiert werden und den gleichen Dateinamen haben aus C:\Upd_doc einlesen lassen und dann eben diese auf C:\User\..\eingeleseneDatei.xyz zwingend löschen und danach die Dateien kopieren. Ich hab mir da auch was kleines zurecht gebastelt aber irgendwie geht es nicht...
Er übergibt mir den kompletten Dateinamen bis zum del und dann iss Schluss mit lustich... das wars dann... dann werden die Namen wieder abgehackt

folgende Konstruktion steht bei mir

For /f "delims=" %%l in ('dir /b /A:-d "C:\Upd_doc"') do For /f %%i in ('dir /b C:\User /a:D') do del /F C:\User\%%i\%%l

output:

C:\Batch\Alex>del /F C:\User\5400\und wieder eins.doc
C:\User\5400>und konnte nicht gefunden werden
C:\Batch\Alex>wieder konnte nicht gefunden werden


Die Dateistruktur sieht folgendermassen aus:

C:\Upd_doc sind die aktuellen Dateien drin
C:\User sind alle Accounts drin (von 5200 bis 5400 erst mal)

Was habe ich falsch gemacht?
Bitte warten ..
Mitglied: gogoflash
23.05.2006 um 19:44 Uhr
Hi,

set pfad1=d:\a\update
set pfad2=d:\a\user

For /f %%a in ('dir /b /A:-d %pfad1%') Do for /f %%b in ('dir /b /s %pfad2%\user\%%~nxa') DO del %%b

In der ersten FOR Schleife wird nach Dateien gesucht. In die Zweite FOR Schleife wird durch %%~nxa nur Dateiname und Extension übergeben. Gelöscht wird dann Datei in Ordner User %%b, wenn exisitiert.

Der Fehler deines Codes prüfe ich gerade.

Echo hilft:
For /f "delims=" %%l in ('dir /b /A:-d "%pfad1%"') do For /f %%i in ('dir /s %pfad2% /a:D') do echo d:\a\user\%%i\%%l >> test.txt

Die Test.txt hat dann folgende Einträge c:\user\user\ und c:\update\update. Diese kann er nicht richtig auflösen, da sie nicht existieren.


Auch wenn für sich genommen, die einzelnen DIR Befehle Korrekt sind, wird %%i nicht so ausgegeben wie gewünscht. ?????


Gruß Miguel
Bitte warten ..
Mitglied: Biber
24.05.2006 um 08:39 Uhr
Moin, ihr Hobby-Bätcher,
nun machts nicht so kompliziert...das wird es von alleine...
01.
@echo off & setlocal
02.
Set "inputdir=c:\Docs"
03.
Set "Userroot=c:\user"
04.
:Rem Löschen, falls vorhanden; danach kopieren
05.
for %%i in (%inputdir%\*.*) do @for /f %%a in ('dir /b /A:D %userroot%') do (
06.
  ECHO if exist %userroot%\%%~nxa\%%~nxi del /f %userroot%\%%~nxa\%%~nxi
07.
  ECHO copy %inputDir%\%%~nxi %userroot%\%%~nxa\%%~nxi
08.
)
Das große ECHO nach dem Testen löschen, dann ist es scharf.

Gruß
Biber
Bitte warten ..
Mitglied: 30452
24.05.2006 um 09:23 Uhr
Danke für eure Mühe ... ich habe einen sehr großen Fehler gemacht und es unnötig kompliziert.... ich brauch die vorhandenen schreibgeschützten Dateien gar nicht löschen, da der xcopy mit /R diese auch überschreibt... hatte ich in der Help !!!2 Tage!!! lang überlesen. Aber das kommt in den besten Familien vor... hier mal das Script für spätere Fälle: Trotzdem vielen Dank

@echo off
ECHO.
ECHO.
ECHO.
ECHO.
ECHO Bitte bereiten Sie alle Dateien zum Kopieren vor!
ECHO.
ECHO.
ECHO Wenn Sie bereit sind
Pause

CLS

ECHO.
ECHO.
ECHO Es werden nun alle Dateien im Ordner D:\Upd_doc zum Server in jeden User Account kopiert!
ECHO Es werden nun alle Dateien im Ordner D:\Upd_doc zum Server in jeden User Account kopiert!>>%date%_log.txt
ECHO.
ECHO.
ECHO Der Kopiervorgang wird gestartet ...
ECHO Der Kopiervorgang wird gestartet ...>>%date%_log.txt
ECHO.>>%date%_log.txt
ECHO.>>%date%_log.txt

For /f %%i in ('dir /b S:\user /a:D') do xCopy /H /V /E /Y /R /F D:\Upd_doc\*.* S:\User\%%i>>%date%_log.txt 2>&1

ECHO.>>%date%_log.txt
ECHO.>>%date%_log.txt
ECHO.>>%date%_log.txt
Echo Der Kopiervorgang ist beendet ...>>%date%_log.txt

IF NOT ERRORLEVEL 1 ECHO Alle Dateien vollständig in alle Ordner kopiert>>%date%_log.txt

ECHO.
Echo Der Kopiervorgang ist beendet ...


ECHO.
Pause
Bitte warten ..
Mitglied: Biber
24.05.2006 um 09:39 Uhr
Schön, SiggiAZE,

Sieht übersichtlich und wartbar aus. Eine Kleinigkeit noch...
Dieses ändern:
IF ERRORLEVEL=0 ECHO Alle Dateien vollständig in alle Ordner kopiert>>%date%_log.txt

in:
IF NOT ERRORLEVEL 1 ECHO Alle Dateien vollständig in alle Ordner kopiert>>%date%_log.txt
(Bedeutet: ERRORLEVEL 1 oder ein höherer liegt nicht vor.

- oder (exakter Vergleich mit "==" ) -
IF %ERRORLEVEL%==0 ECHO Alle Dateien vollständig in alle Ordner kopiert>>%date%_log.txt

Gruß
Biber
Bitte warten ..
Mitglied: 30452
24.05.2006 um 10:21 Uhr
BIBIER:

Danke für die Blumen


Musste auch schick aussehen, damit mein Kollege halbwegs was mit anfangen kann...

thx for the Help

grEEtz

SiggiAZE
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Merkwürdige Zeilenformatierung in txt Datei

gelöst Frage von miczarBatch & Shell3 Kommentare

Hallo zusammen, ich arbeite mit .cxv Dateien. Das ist nichts anderes wie .txt Dateien nur mit Programmspezifischer Endung. Pro ...

Windows 7

Txt Datei mit findstr durchsuchen

gelöst Frage von 126594Windows 72 Kommentare

Hallo zusammen! Leider komme ich gerade an meine Grenzen und weiß nicht mehr weiter, jetzt hoffe ich hier, den ...

Batch & Shell

Wert in einer TXT Datei suchen

Frage von nolle99Batch & Shell11 Kommentare

Hallo Leute Ich habe ein Problem Ich habe mir von meiner Seite alle URLs in einer TXT gespeichert (30.000 ...

Batch & Shell

Txt datei veränden - "steuerung" für VirtualBox

gelöst Frage von AngryDadBatch & Shell7 Kommentare

Hallo zusammen! Möchte eine .bat schreiben mit der ich meine VM´s steuern kann. Hab es schon geschafft die Liste ...

Neue Wissensbeiträge
Firewall
PfSense 2.5.0 benötigt doch kein AES-NI
Information von ChriBo vor 1 TagFirewall1 Kommentar

Hallo, Wie sich einige hier erinnern werden hat Jim Thompson in diesem Aritkel beschrieben, daß ab Version 2.5.0 ein ...

Internet
Copyright-Reform: Upload-Filter
Information von Frank vor 2 TagenInternet1 Kommentar

Hallo, viele Menschen reden aktuell von Upload-Filtern. Sie reden darüber, als wären es eine Selbstverständlichkeit, das Upload-Filter den Seitenbetreibern ...

Google Android

Blokada: Tracking und Werbung unter Android unterbinden

Information von AnkhMorpork vor 3 TagenGoogle Android1 Kommentar

In Ergänzung zu meinem vorherigen Beitrag: Blokada efficiently blocks ads, tracking and malware. It saves your data plan, makes ...

Google Android
Facebooks unsichtbare Datensammlung
Information von AnkhMorpork vor 3 TagenGoogle Android3 Kommentare

Rund 30 Prozent aller Apps im Play-Store nehmen Kontakt zu Facebook auf, sobald man sie startet. So erfährt der ...

Heiß diskutierte Inhalte
Linux Userverwaltung
LogIn Versuche beschränken auf EINEN Versuch
gelöst Frage von GarroshLinux Userverwaltung23 Kommentare

Folgendes Problem Ich habe einen dezidierten Server beim Hoster gemietet, installiert ist Ubuntu 18.04.2 LTS‬ und als Webinterface Plesk. ...

Backup
Wo installiert man Veeam bei SoHo?
Frage von EDVMan27Backup14 Kommentare

Hallo, nachdem ich die neue Veeam CE bei mir getestet habe, wollte ich es einmal bei einem Kunden testen. ...

Batch & Shell
Tasklist überprüfen
Frage von IleiesBatch & Shell10 Kommentare

Hallo zusammen, Wie kann ich in Batch überprüfen, ob gerade der Prozess "Skype.exe" ausgeführt wird? Also nicht so dass ...

Backup
Sicherung auf externe RDX Festplatten (oder auf USB 3.0) mit Veeam Agent for Microsoft
gelöst Frage von mike7050Backup9 Kommentare

Hallo, ich sichere immer auf RDX Wechselfestplatten mit der Accuguard Software. Gesichert wird eine Windows Server 2008 R2. Einmal ...