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, 8801 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Erstellen von Verknüpfungen mithilfe einer Variablen (3)

Frage von ciNNEx zum Thema Batch & Shell ...

Batch & Shell
gelöst Mit zusammengesetzter Variable auf andere Variable zugreifen (2)

Frage von abiber zum Thema Batch & Shell ...

Batch & Shell
gelöst FOR Loop Variablen ( Batch ) (2)

Frage von clragon zum Thema Batch & Shell ...

Datenbanken
Reguläre Ausdrücke in MSSQL dynamisch zusammensetzen (2)

Frage von Androxin zum Thema Datenbanken ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (18)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
IP Adressen - Modem - Switch - Accesspoint (17)

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

Windows Netzwerk
DNS ins mehreren Subnetzen (13)

Frage von joerg zum Thema Windows Netzwerk ...