Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Batch, wechselnden Dateinamen kopieren

Frage Entwicklung Batch & Shell

Mitglied: Valume91

Valume91 (Level 1) - Jetzt verbinden

08.04.2009, aktualisiert 13:55 Uhr, 5958 Aufrufe, 14 Kommentare

Ich habe eine Batch bei der die Datei (...)\Erstauftr„ge\C%Zahl%* kopiert werden soll, es werden jedoch alle Ordner aus dem Ordner Erstaufträge kopiert!

Hallo liebes Forum

Ich habe folgende Batch

01.
for /f "delims=| " %%i in ('findstr "|" "I:\EDV\180 Projekte\Umstellung Filemaker\Auftragseingang Servax\Ordnerkopie.txt"') do set "Zahl=%%i" 
02.
if %Zahl%==MaxvonEANummer exit 
03.
xcopy "I:\SERVAX\Servax\ST\Erstauftr„ge\C%Zahl%*" "I:\SERVAX\Servax\ST\Gesicherte Erstauftr„ge\" /E
Bei der möchte ich das nur zum Beispiel der Ordner "C1170 blablblaalbalbala" kopiert wird.
Dabei steht %Zahl% für 1170 und "blablblaalbalbala" für "*".
Es werden dabei jedoch alle Dateien aus dem Ordner Erstaufträge kopiert, und nicht nur der gewünschte.

Was mache ich falsch?

MfG Valume
Mitglied: bastla
08.04.2009 um 14:16 Uhr
Hallo Valume91!

Sieht so aus, als wäre %Zahl% leer - damit würde dann tatsächlich "C*" kopiert ...

Absichern könntest Du das etwa so:
01.
set Zahl= 
02.
for /f "delims=| " %%i in ('findstr "|" "I:\EDV\180 Projekte\Umstellung Filemaker\Auftragseingang Servax\Ordnerkopie.txt"') do set "Zahl=%%i" 
03.
if not defined Zahl goto :eof 
04.
if %Zahl%==MaxvonEANummer goto :eof 
05.
xcopy "I:\SERVAX\Servax\ST\Erstauftr„ge\C%Zahl%*" "I:\SERVAX\Servax\ST\Gesicherte Erstauftr„ge\" /E
Wofür steht eigentlich "MaxvonEANummer"?

Grüße
bastla
Bitte warten ..
Mitglied: Valume91
08.04.2009 um 14:17 Uhr
Sorry Bastla aber %Zahl% ist nicht leer, das habe ich schon überprüft!
Ausserdem werden auch Ordner kopiert die nicht mit "C" beginnen...

Edit:

MaxVonEANummer wird für Zahl gsetzt wenn die txt keine Zahl enthält. Darum wollte ich das es die Batch abbricht fals die txt keine Zahl enthält.

Vieleicht Hilft dir der Inhalt der txt weiter:

01.
--------------------- 
02.
|  MaxvonEANummer   | 
03.
--------------------- 
04.
|              1170 | 
05.
---------------------
Bitte warten ..
Mitglied: bastla
08.04.2009 um 14:20 Uhr
Hast Du es schon mit dem Kurznamen (zB "ERSTAU~1") anstelle von "Erstauftr„ge" versucht?

Grüße
bastala
Bitte warten ..
Mitglied: Valume91
08.04.2009 um 14:23 Uhr
Ja hab ich, es werden immer noch alle Ordner kopiert -.-
Bitte warten ..
Mitglied: bastla
08.04.2009 um 14:30 Uhr
Aufgrund des "\C" am Ende des Pfades kann ich mir eigentlich nicht vorstellen, dass Dateien bzw Ordner, die nicht mit "C" beginnen, kopiert werden ...

... anyhow: Versuch es mal so:
for /f "delims=" %%i in ('dir /b /ad "I:\SERVAX\Servax\ST\Erstauftr„ge"^|findstr /b "C%Zahl%"') do echo xcopy "I:\SERVAX\Servax\ST\Erstauftr„ge\%%i" "I:\SERVAX\Servax\ST\Gesicherte Erstauftr„ge\" /E
Das "echo" ist dazu da, die Kopierbefehle (sollte ja eigentlich nur einer werden) anzuzeigen ...

Grüße
bastla
Bitte warten ..
Mitglied: Valume91
08.04.2009 um 14:37 Uhr
Welchen Teil der Batch soll ich den durch das ersetzten?
Wenn ich alles ersetze rattert die Batch durch, jedoch wird nichts kopiert.
Bitte warten ..
Mitglied: bastla
08.04.2009 um 14:41 Uhr
Das wäre die neue Zeile 5.

Es soll ja auch nichts kopiert werden, sondern der Kopierbefehl wird nur angezeigt - sinnvoll ist daher ein Test direkt von der Kommandozeile oder, als neue Zeile 6, ein "pause", damit Du das Ergebnis in Ruhe ansehen kannst.

Grüße
bastla
Bitte warten ..
Mitglied: Valume91
08.04.2009 um 14:47 Uhr
Hmmmm es wird immer noch nichts kopiert, ich habe auch bereits ein pause eingefügt, jedoch wird kein
Fehler angezeigt.
Bitte warten ..
Mitglied: bastla
08.04.2009 um 14:54 Uhr
Es soll auch kein Fehler, sondern ein Befehl der Art
xcopy "I:\SERVAX\Servax\ST\Erstauftr„ge\C1170" "I:\SERVAX\Servax\ST\Gesicherte Erstauftr„ge\" /E
angezeigt werden (und kopiert wird sowieso nix, weil der Kopierbefehl nur angeschrieben, aber nicht ausgeführt wird).
Falls Du ein "echo off" am Beginn des Batches verwendest, ändere es vorübergehend auf "echo on" - damit werden alle Befehle vor ihrer Ausführung angezeigt. Soferne Du daraus nichts ablesen kannst, poste bitte (unter Verwendung der Code-Formatierung) die entsprechenden Zeilen.

Grüße
bastla
Bitte warten ..
Mitglied: Valume91
08.04.2009 um 15:09 Uhr
Unter der verwendung folgender Batch

01.
set Zahl= 
02.
for /f "delims=| " %%i in ('findstr "|" "I:\EDV\180 Projekte\Umstellung Filemaker\Auftragseingang Servax\Ordnerkopie.txt"') do set "Zahl=%%i" 
03.
if not defined Zahl goto :eof 
04.
if %Zahl%==MaxvonEANummer goto :eof 
05.
for /f "delims=" %%i in ('dir /b /ad "I:\SERVAX\Servax\ST\Erstauftr„ge"^|findstr /b "C%Zahl%"') do echo xcopy "I:\SERVAX\Servax\ST\Erstauftr„ge\%%i" "I:\SERVAX\Servax\ST\Gesicherte Erstauftr„ge\" /E 
06.
pause
wird folgendes angezeigt: (am ende)

01.
I:\EDV\180 Projekte\Umstellung Filemaker\Auftragseingang Servax>for /F "delims=" 
02.
 %i in ('dir /b /ad "I:\SERVAX\Servax\ST\Erstaufträge"|findstr /b "C1170"') do e 
03.
cho xcopy "I:\SERVAX\Servax\ST\Erstaufträge\%i" "I:\SERVAX\Servax\ST\Gesicherte 
04.
Erstaufträge\" /E 
05.
 
06.
I:\EDV\180 Projekte\Umstellung Filemaker\Auftragseingang Servax>echo xcopy "I:\S 
07.
ERVAX\Servax\ST\Erstaufträge\C1170 Teamtechnik MHP-I-132-04AF-01" "I:\SERVAX\Ser 
08.
vax\ST\Gesicherte Erstaufträge\" /E 
09.
xcopy "I:\SERVAX\Servax\ST\Erstaufträge\C1170 Teamtechnik MHP-I-132-04AF-01" "I: 
10.
\SERVAX\Servax\ST\Gesicherte Erstaufträge\" /E 
11.
 
12.
I:\EDV\180 Projekte\Umstellung Filemaker\Auftragseingang Servax>pause 
13.
Drücken Sie eine beliebige Taste . . .
Scheint zu funktionieren oder? Wie mache ich die jetzt scharf das sie die Dateien auch kopiert?
Bitte warten ..
Mitglied: bastla
08.04.2009 um 15:14 Uhr
Wie mache ich die jetzt scharf das sie die Dateien auch kopiert?
Indem Du das "echo" vor dem "xcopy" entfernst.

Grüße
bastla
Bitte warten ..
Mitglied: Valume91
08.04.2009 um 15:22 Uhr
SUPER! Es funktioniert!
Jedoch werden nur die Unterordner von C1170 kopiert.
Es soll jedoch auch der Ordner C1170 kopiert werden!
Was muss ich da ändern?
Ich habe bereits beim xcopy ziel am schluss \C%Zahl% hinzugefügt, jedoch fragt er mich dann ob C1170 ein File Name oder ein Directory Name ist. Wie kann ich das ohne diese Frage machen?
Bitte warten ..
Mitglied: bastla
08.04.2009 um 15:29 Uhr
Ändere die "Kopier"-Zeile auf
for /f "delims=" %%i in ('dir /b /ad "I:\SERVAX\Servax\ST\Erstauftr„ge"^|findstr /b "C%Zahl%"') do echo xcopy "I:\SERVAX\Servax\ST\Erstauftr„ge\%%i" "I:\SERVAX\Servax\ST\Gesicherte Erstauftr„ge\%%i\" /E
Soferne es sicher ist, dass nach der "Zahl" im Ordnernamen ein Leerzeichen folgt, wäre die folgende Zeile noch exakter (damit würde verhindert, dass zB auch "C11704" kopiert wird):
for /f "delims=" %%i in ('dir /b /ad "I:\SERVAX\Servax\ST\Erstauftr„ge"^|findstr /b /c:"C%Zahl% "') do echo xcopy "I:\SERVAX\Servax\ST\Erstauftr„ge\%%i" "I:\SERVAX\Servax\ST\Gesicherte Erstauftr„ge\%%i\" /E
Ansonsten: Schön, dass es funktioniert, aber seltsam bleibt die Sache dennoch ...

Grüße
bastla
Bitte warten ..
Mitglied: Valume91
08.04.2009 um 15:33 Uhr
Ansonsten: Schön, dass es funktioniert, aber seltsam bleibt die
Sache dennoch ...


Joa sehr seltsam. Vielen Dank noch für deine Mühe!

MfG Valume
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch aktuellsten Ordner kopieren (2)

Frage von MmarKuss zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien (PDF) umbenennen via batch, teilw. Dateinamen übernehmen, neues Präfix (6)

Frage von brause1701 zum Thema Batch & Shell ...

Batch & Shell
gelöst Ordner per Batch verschieben, Datei kopieren (2)

Frage von Shape.Shifter zum Thema Batch & Shell ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(4)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

LAN, WAN, Wireless
gelöst Statische Routen mit ISC-DHCP Server für Android Devices (22)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Exchange Server
gelöst Migration Exchange 2007 zu 2013 - Public Folder teilweise weg (16)

Frage von Andy1987 zum Thema Exchange Server ...