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

Pfad aus Variablen zusammensetzen

Frage Entwicklung Batch & Shell

Mitglied: Tarmerlan

Tarmerlan (Level 1) - Jetzt verbinden

16.02.2009, aktualisiert 15:01 Uhr, 8656 Aufrufe, 6 Kommentare

Guten Tag,

ich vermute mein Problem ist recht einfach und wird bei vielen für ein Schmunzeln sorgen, aber ich hänge nun mal leider fest: Folgender Sachverhalt ... Aus einer Batch sollen per call andere Batchs aufgerufen werden. In der Masterbatch habe ich einige Variablen definiert. Die sollen möglichst auch alle hier definiert werden, damit die Anpassung einfach wird.
Bei den call-Aufrufen gebe ich dann diese Variablen einfach mit und rufe sie per %1 usw. in der Unterbatch wieder auf. Teilweise klappt das auch. Ich habe aber ein Problem: Die Unterbatch soll kopieren und dieser Job funktioniert nicht. Ich zeig mal was ich meine:

Inhalt der Masterbatch

set pfad="c:\temp\"
set vm="C:\Temp\test\"
call 22.bat %pfad% %vm%

Der Inhalt der Unterbatch 22.bat:
md %1\backup
copy %2 %1\backup

Der erste Teil - die Verzeichniserstellung - funktioniert. Der zweite Teil leider nicht. Das wäre dann mein Problem. Ich hoffe ich habe es anschaulich dargestellt...

Grüße Erik
Mitglied: Paddyville
16.02.2009 um 23:23 Uhr
Also ich bin zwar batch noob und das ist keine gute Lösung aber es sollte klappen.

01.
main.bat 
02.
set PFAD1="c:\temp\" 
03.
set PFAD2="C:\Temp\test\" 
04.
echo %PFAD1%>>pfad1.txt  
05.
echo %PFAD2%>>pfad2.txt  
06.
call 22.bat %PFAD1% %PFAD2% 
07.
del pfad1.txt 
08.
del pfad2.txt 
09.
 
10.
22.bat 
11.
FOR /F %%i in (pfad1.txt) do set PFAD1=%%i 
12.
FOR /F %%k in (pfad2.txt) do set PFAD2=%%k 
13.
md %PFAD1%\backup 
14.
copy %PFAD2$ %PFAD1%\backup
Bitte warten ..
Mitglied: Tarmerlan
17.02.2009 um 00:13 Uhr
Erst mal danke für die Antwort. Leider verstehe ich da Ganze nicht so richtig.
Das fängt schon mit Zeile 03 und 04 an. Dort wird "Text" in Textdateien geschrieben. Ich sehe schon, dass dies eigentlich Variablen sind, aber wenn ich in die Textdatei reinschaue, dann sehe ich nur eine Meldung, dass Echo eingeschaltet ist.
Dann erfolgt der Call-Aufruf, wobei die alten Variablen als Parameter übergeben werden.

Ich interpretiere die Freizeilen mal so, dass unten der Inhalt der 22.bat steht. Dort wird eine Schleife aufgerufen, mir ist aber nicht so klar was hier passiert.

Auch hat die Verwendung der Dateien nicht das gewünschte Ergebnis gebracht...
Bitte warten ..
Mitglied: Paddyville
18.02.2009 um 23:27 Uhr
Hi,

sorry ich habe das gerade mal korrigiert.

dürfte klar sein....
set PFAD1="c:\temp\"
set PFAD2="C:\Temp\test\"

Pfade in Textdatei schreiben...
echo %PFAD1%>>pfad1.txt
echo %PFAD2%>>pfad2.txt

dann call 22.bat

Pfad aus den textdateien holen und variable PFAD1 und PFAD2 setzen ...
FOR /F %%i in (pfad1.txt) do set PFAD1=%%i
FOR /F %%k in (pfad2.txt) do set PFAD2=%%k

also bei mir läuft das so ...

Gruß aus Hamburg
Bitte warten ..
Mitglied: Tarmerlan
19.02.2009 um 10:50 Uhr
Ja - jetzt hat es auch bei mir funktioniert. Diese Lösung kann ich jetzt verwenden. Ich bedanke mich für die nette Hilfe.

Grüße aus Berlin
Bitte warten ..
Mitglied: Paddyville
19.02.2009 um 18:41 Uhr
Es ist zwar nicht die schönste Lösung aber wenn es funktioniert
Bitte warten ..
Mitglied: Tarmerlan
19.02.2009 um 19:33 Uhr
Ich habe das Ganze jetzt mal eingebaut und da sind noch 2 neue Fragen aufgetaucht:
1. In den Textdateien, wird ja ein Pfad gespeichert. Einmal enthält dieser Pfad ein Freizeichen. Das Ganze steht natürlich vorbildlich in Hochkomme, aber leider wird die Variable dann einfach abgekürzt erstellt. Sprich nur bis zum Freizeichen. Dann fehlt natürlich ein Teil des Pfades. Das hat sicher mit der Syntax zu tun... oder?
2. ich wollte mehr als 2 Variablen auf diesem Weg übergeben und habe einfach noch weitere kleine Buchstaben verwendet (gleiches Schema wie das %%i und das %%k) > das hat dann leider nicht funktioniert.
Auch beim Lesen von for /? bin ich nicht so recht schlau geworden. Bin halt nicht so der Programmierer.
Problem Nummer 1 habe ich damit umgangen, dass ich den Pfad geändert habe... ist aber auch wieder nur halbherzig. Für Problem Nummer 2 habe ich keine Lösung.

Übrigens: Du hast geschrieben, dass diese Lösung nicht "schön" ist. Wie kriegt man denn eleganter Variablen aus der "Mutterbatch" in die per call aufgerufenen Batchs? Wäre echt dankbar für ein paar Tipps um meine Lösung eleganter zu gestalten, bzw. einfacher anpassbar zu machen.

Grüße Erik
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Windows Userverwaltung
Servergespeichertes Profil - Pfad ausfindig machen (6)

Frage von staybb zum Thema Windows Userverwaltung ...

Batch & Shell
gelöst Variablen Zusammenbauen 2.0 ( Batch ) (6)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
Leerzeichen im Pfad (4)

Frage von Jallio zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...