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

Batchdatei soll variablen Dateinamen auslesen und diesen vergleichen und dann eine Datei kopieren!

Frage Entwicklung

Mitglied: erklaerbaer

erklaerbaer (Level 1) - Jetzt verbinden

05.11.2008, aktualisiert 13:46 Uhr, 6204 Aufrufe, 2 Kommentare

Hallo erstmal,

Ich hoffe Ihr könnt mir weiter helfen.

Ich beschäftige mich erst seit ein paar Tagen mit dem Erstellen von Batchdatein. Nun weiß ich nicht ob sich mein Vorhaben auch realisieren läßt!
Ich habe schon sehr viel hier gesucht und gelesen und leider noch nicht so recht was gefunden.

Nun zu meinem Problem.

Ich habe eine Text Datei in einem Ordner deren Name variabel ist den ich verwenden möchte.
Mit dieser Variablen möchte ich gerne in einem anderen Ordner suchen ob dort ein Datei den selben Namen hat, allerdings mit einer anderen Endung. Und diese würde ich dann anschließend gerne kopieren.

ich habe auch schon einige Ansätze gehabt aber irgendwie noch nicht den richtigen Erfolg!


Goto start
:start
@echo off & setlocal
for %%f in ("C:\\Export\*.txt") do IF EXIST ("C:\\Neu\"%%f.xls") move ("C:\\Neu\"%%f.xls") ("C:\\Ganz\"%%f.xls")
ELSE
goto start

Danke schon im vorraus.
Mitglied: Biber
05.11.2008 um 13:44 Uhr
Moin erklaerbaer,

willkommen im Forum.
Im Prinzip hast Du ja schon alles.
Nur: die Datei in "c:\Neu" soll ja nur den gleichen Namen, nicht die gleiche Endung haben.
Dazu musst Du bei der Variablen %f nur den "Dateinamen von %f" nehmen, also %~nf

Als ganze Zeile zum Test am CMD-Prompt:
01.
for %f in ("C:\Export\*.txt") do IF EXIST "C:\Neu\%~nf.xls" move "C:\Neu\%~nf.xls" C:\Ganz\
Als Batchzeile müssten alle %-Zeichen verdoppelt werden ...
...aber ein Batch wird wohl auch kaum nötig sein...

Grüße
Biber
P.S. Und bitte in Zukunft:
Ersetze
Danke schon im vorraus.
durch
""
[Anführungszeichen nicht mit eingeben.]
Bitte warten ..
Mitglied: bastla
05.11.2008 um 13:46 Uhr
Hallo erklaerbaer und willkommen im Forum!

Falls die betreffende Textdatei tatsächlich im Ordner "C:\Export" die einzige Datei mit dem Typ ".txt" ist, dann etwa so:
01.
@echo off & setlocal 
02.
:Start 
03.
for %%f in ("C:\Export\*.txt") do ( 
04.
    if exist "C:\Neu\%%~nf.xls" move "C:\Neu\%%~nf.xls" "C:\Ganz\" 
05.
) else ( 
06.
    goto :Start 
07.
)
Den Widerspruch zwischen
würde ich dann anschließend gerne kopieren
und der Verwendung von "move" (= verschieben) musst Du selbst aufklären ...

... und ebenso noch überlegen, was mit einer im Ordner "C:\Ganz" ev bereits vorhandenen gleichnamigen Datei geschehen soll (Default im Batch sowohl für "copy" als auch für "move": kommentarlos überschreiben).

Grüße
bastla

[Edit] @Biber: Hast Du jetzt gerade links überholt? [/Edit]
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Batch & Shell
gelöst In Batchdatei Variablen befüllen - mit Werten aus einer TXT-Datei (6)

Frage von donnyS73lb zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Datei Kopieren (17)

Frage von Frager zum Thema Batch & Shell ...

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

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

C und C++
gelöst In einer Windows Form Anwendung per Button eine Datei kopieren (4)

Frage von Knuefi zum Thema C und C ...

Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (31)

Frage von Maik82 zum Thema Linux Netzwerk ...

Exchange Server
gelöst Bestehende eMails autoamatisch weiterleiten (22)

Frage von metal-shot zum Thema Exchange Server ...

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...

Switche und Hubs
LAG zwischen SG300-Switches macht Probleme. Wer weiß Rat? (20)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...