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

Mehrere Dateien miteinander Verknüpfen

Frage Entwicklung Batch & Shell

Mitglied: zbyszek

zbyszek (Level 1) - Jetzt verbinden

18.08.2011 um 14:19 Uhr, 2445 Aufrufe, 9 Kommentare

Hallo zusammen!

ich habe keinen Plan wie ich es machen soll und wie ihr es gleich merken werden keine Ahnung von den ganzen Zeugs hier.

In einem Verzeichnis liegen Dateien : Uberschrift_1.txt ....Uberschirft_5.txt
Im gleichem Verzeichis liegen auch Daten-Dateien: Daten1.txt ......usw.

Jetzt soll Daten1 mit Uberschrift1 zu ---> Fertige_Daten1.txt kopiert werden.
Daten2.txt mit Uberschirft2.txt. zu Fertige_Daten2.txt
usw.

Das eine ist schon klar:

Copy Uberschrift1.txt + Daten1.txt Fertige_Daten1.txt

Ich glaube ich muss als erstes den Überschriften-Dateien jeweils eine Variable zuordnen. Das geiche mit den Datendateien.
Dann irgendwie ins copy befehl packen.

for /f %%i in ('dir /b U*.txt') do set bla=%~ni
for /f %%j in ('dir /b D*.txt') do set bla2=%~ni

oder irgendwie verschachteln ?????????????

for /f %%i in ('dir /b U*.txt') do (for /f %%j in ('dir /b D*.txt') do set bla=%~ni )


????????
Danke
Mitglied: Skyemugen
18.08.2011 um 14:32 Uhr
Aloha,

sollte doch so funktionieren:
01.
@echo off & setlocal 
02.
set "Pfad=E:\Test" 
03.
pushd "%Pfad%" 
04.
for /f "tokens=1,2 delims=_" %%s in ('dir /b Uberschrift_*.txt') do ( 
05.
REM	>>"%%s_%%t" echo( & REM hiermit könntest du noch eine Leerzeile dazwischen setzen 
06.
	copy "%%s_%%t" + "Daten_%%t" "Fertige_Daten_%%t">nul 
07.
08.
popd 
09.
pause 
10.
goto :eof
Wenn du Zeile 5 in Anspruch nehmen willst, musst du einfach das erste REM entfernen.

greetz André
Bitte warten ..
Mitglied: zbyszek
18.08.2011 um 15:08 Uhr
Cool, Danke schon mal dafür.

Wie mache ich das wenn da kein "Trennzeichen" ( delims=_ ) in den Dateinamen steht? dh uberschrift1 uberschrift2 oder Daten1 Daten2 usw?
und die Namen folgend aussehen

Uberschrift1 ---Daten1----> Fertige_Daten1.txt
Uberschrift1a ---Daten1a----> Fertige_Daten1a.txt
Uberschrift2---Daten2----> Fertige_Daten2.txt
Uberschrift2a ---Daten2a----> Fertige_Daten2a.txt

Danke nochmals
Bitte warten ..
Mitglied: Skyemugen
18.08.2011 um 15:39 Uhr
Aloha,

hmkay, dann eben so:

01.
@echo off & setlocal 
02.
set "Pfad=E:\Test" 
03.
set "grp=Uberschrift" 
04.
pushd "%Pfad%" 
05.
for /f "delims=" %%s in ('dir /b %grp%*.txt') do call :Ablauf "%%s" 
06.
popd 
07.
pause 
08.
exit /b 
09.
 
10.
:Ablauf 
11.
REM	>>"%~1" echo( & REM hiermit könntest du noch eine Leerzeile dazwischen setzen 
12.
	set "Datei=%~1" 
13.
	call set "Zahl=%%Datei:%grp%=%%" 
14.
	copy "%~1" + "Daten%Zahl%" "Fertige_Daten%Zahl%">nul 
15.
goto :eof
greetz André

@bastla (ich weiß, du liest das ) set call_set+=1 ^_^ ich zähle ab sofort diese Vorkommen
edit so, damit der Zähler auch seine Daseinsberechtigung hat: Jetzt mir einer Variable mehr
Bitte warten ..
Mitglied: zbyszek
18.08.2011 um 16:01 Uhr
OK Danke nochmals.

jetzt noch mal Verständnisfrage:

Mit dem Leerzeichen verstehe ich nicht!!!

und das auch nicht:

set "datei:%~1" ??????? --> Variable namens datei und dann &~1
call set "Zahl=%%Datei:Uberschrift=%%

Was macht der Doppelpunkt da und fehlt da nicht ein " am Ende?
Bitte warten ..
Mitglied: Skyemugen
18.08.2011 um 16:10 Uhr
Aloha,

Leerzeichen = Typo (korrigiert)

set "Datei=%~1" = Schleifenvariable "%%s" (mit Zollzeichen) wird als Parameter %1 übergeben und ohne überflüssige Zollzeichen als %~1 in die Variable Datei geschrieben

Ja, Zollzeichen hat gefehlt, hätte zwar die Funktion nicht beeinträchtigt aber eine gerade Anzahl ist beim c&p immer sinnvoll
der Doppelpunkt weist eine Verarbeitung an, in diesem Fall wird der vorkommende Text Uberschrift durch nichts ersetzt (oder auch weggekürzt), um nur 1a.txt zum Beispiel zu erhalten, also nur die Nummerierung + Textendung
es gibt auch andere Verarbeitungen wie z.B. %Datei:~-4% oder andere Variationen davon, die hier aber nicht voll funktionsfähig wären bzw. nicht das gewünschte Ergebnis bringen würden (um das zu verstehen, kannst du am cmd-prompt einfach mit echo %time:~0,1% und dergleichen herumspielen )

greetz André
Bitte warten ..
Mitglied: zbyszek
18.08.2011 um 16:31 Uhr
alter schwede jetzt bin noch mehr verwirrt als vorher.
gibt's das auch in deutsch? sorry

Nochmal von vorne:

mit

do call :Ablauf "%%s"

wird die Variable %%s an den :Ablauf übergeben. Dann kommt die Variable %%s in die neue Variable "Datei" rein, mit so einem ~1 als Parameter.

d.h. im ersten Durchlauf steht in der Variable Datei "Überschrift ~1.txt"
Dann Call !! wieso nicht einfach set Zahl=....
Bitte warten ..
Mitglied: Skyemugen
18.08.2011 um 16:51 Uhr
Aloha,

der Parameter beinhaltet schon noch sein eigenens %-Zeichen

Im Prinzip gilt: Datei=%%s, da ich jedoch mehrere (variierende) Treffer habe, mit denen ich arbeiten muss, nutze ich ein Unterprogramm, die Alternative wäre mit der Variablenerweiterung enabledelayedexpansion zu arbeiten, was allerding einige (hier eher nicht) Nebenwirkungen unter manchen Situationen haben kann, darum versuche ich es grundlegend zu vermeiden, sofern es nicht anders geht.

Tja, call, warum call, einfach gesagt: Gewohnheit oder Luxus *gg*, ich habe selbst erst vor Kurzem bei bastla diese Verarbeitung entdeckt und auch wenn man hier in dem Fall tatsächlich einfach set "Zahl=%Datei:Uberschrift=%" nutzen kann, mache ich es gewohnheitsbedingt ebenso mit call um im Fall der Fälle auch dann wieder nicht mit der Variablenerweiterung zu arbeiten (die dann wirklich teilweise hierbei unangenehm werden kann).

Fragen zur Variablenerweiterung stellst du am Besten die Forensuche Gibt sehr viel ausführlichen Stoff dazu im Batchbereich bei den Anleitungen, Tipps etc. ich bin nämlich selbst noch Halbwissender, der immer wieder was neues lernt *gg* - bastla, Biber und Friemler sind da eher die Experten hier im Forum

greetz André
Bitte warten ..
Mitglied: bastla
18.08.2011 um 17:39 Uhr
Hallo Sky (falls Du keinen Einwand gegen die Abkürzung hast )!
set call_set+=1 ^_^ ich zähle ab sofort diese Vorkommen
Eigentlich wäre der Zähler aber erst anzuwerfen, wenn "call set" auch wirklich benötigt wird - also etwa, wenn Du "Uberschrift" in eine Variable packst (wäre ja auch ubersichtlicher ):
01.
set "Entf=Uberschrift" 
02.
... 
03.
call set "Zahl=%%Datei:%Entf%=%%"
Grüße
bastla
Bitte warten ..
Mitglied: Skyemugen
18.08.2011 um 20:01 Uhr
Aloha bastla,

dass es hier nicht unbedingt benötigt wird, habe ich ja auch bereits erklärt fiel mir aber auch erst während des Erklärens auf, muss ich zugeben

Aber Recht hast du

greetz André

P.S.: Wenn dann bitte Skye, da der Name nichts mit dem englischsprachigen Himmel zu tun hat
Bitte warten ..
Ähnliche Inhalte
LAN, WAN, Wireless
Wie mehrere Accesspoint vernünftig miteinander verknüpfen
Frage von AndreasOCLAN, WAN, Wireless4 Kommentare

Hallo zusammen, wir haben bei uns im Unternehmen mehrere AccessPoints (HP MSM460). Aktuell läuft es so, dass alle die ...

Windows Userverwaltung
AD Benutzerkonten miteinander Verknüpfen
gelöst Frage von RhoninnWindows Userverwaltung4 Kommentare

Hallo zusammen, ich stehe gerade vor ein Problem. Bei uns im Haus hat in der Regel jeder User seinen ...

Batch & Shell
Batch Datei mit einer Datenbank verknüpfen
Frage von cenguiniBatch & Shell7 Kommentare

Also, Leute. Ich habe ein Problem. Undzwar bei uns in der Firma werden verschiedene Notebooks immer neu aufgesetzt, sprich ...

LAN, WAN, Wireless
Mehrere Etagenswitche miteinander verbinden
Frage von jtolksdoLAN, WAN, Wireless8 Kommentare

Hi, ich bin privat von einer Wohnung in eine andere umgezogen. Bislang hatte ich in verschiedenen Räumen jeweils einen ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 103 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server13 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server13 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

Windows Tools
Software-Tool zum Entfernen von bösartigem Windows
Frage von emeriksWindows Tools11 Kommentare

Hi, siehe Betreff hat das jemals irgendjemand schonmal sinnvoll eingesetzt? (MRT) E.