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, 5949 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?

Mit freundlichen Grüßen 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!

Mit freundlichen Grüßen Valume
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

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

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

Batch & Shell
Batch: Word Datei kopieren und umbennen (9)

Frage von ExcelNoob177 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...