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-Erklärungsbedarf

Frage Entwicklung Batch & Shell

Mitglied: Pantherstyle

Pantherstyle (Level 1) - Jetzt verbinden

12.05.2009, aktualisiert 18.10.2012, 3594 Aufrufe, 11 Kommentare

Hallo ich habe eine Batch bekommen mit der Aufgabe sie zu verstehen und im Anschluss zu verändern:
01.
echo Cheking svn directory... 
02.
svn --version --quiet 
03.
IF %ERRORLEVEL%==0 GOTO :StartMerge 
04.
IF EXIST "N:\Program Files\svn-win32-1.6.1" ( GOTO UseSVN ) 
05.
echo could not found svn executable.  
06.
GOTO ERROR  
07.
 
08.
 
09.
rem ######################################################################## 
10.
:UseSVN 
11.
echo setting PATH... 
12.
set PATH=N:\Program Files\svn-win32-1.6.1;%PATH% 
13.
 
14.
:StartMerge 
15.
echo starting merge... 
16.
 
17.
if "X%1"=="X" (echo usage: svn_merge.bat repository workdirectory datafile & goto ERROR ) ELSE set REPOS=%1 
18.
 
19.
if "X%2"=="X" (echo usage: svn_merge.bat repository workdirectory datafile & goto ERROR ) ELSE set WRKDIR=%2 
20.
 
21.
if "X%3"=="X" (echo usage: svn_merge.bat repository workdirectory datafile & goto ERROR ) ELSE set DATAFILE=%3
Im unteren Teil des Codes ist ein Vergleich von X%1==X zu sehen, doch wozu dient der Vergleich und woher stammt %1 ?
Mitglied: Biber
12.05.2009 um 13:53 Uhr
Moin Pantherstyle,

die drei Prüfungen unten dienen nur dazu festzustellen, ob die Batchdatei auch mit DREI (nicht keinem, nicht einem, nicht nur zwei) Paramtern aufgerufen wird.

Denn es MÜSSEN, wie auch in der Fehlermeldung steht
.... repository workdirectory datafile

--> 3 Parameter an/mitgegeben werden
--> [%1=repository, %2= workdirectory; %3=datafile] sind Pflicht- und keine optionalen Parameter

Grüße
Biber
Bitte warten ..
Mitglied: Pantherstyle
12.05.2009 um 14:02 Uhr
Nur woher werden denn die ANgaben für die 3 Positionen hergenommen? Bzw wie werden %1-3 belegt?
Bitte warten ..
Mitglied: 60730
12.05.2009, aktualisiert 18.10.2012
Zitat von Pantherstyle:
Nur woher werden denn die ANgaben für die 3 Positionen
hergenommen? Bzw wie werden %1-3 belegt?
Servus,

"das" erklärt dir dann sicherlich jemand, dem du Hallo und Danke sagst.
http://www.administrator.de/wissen/qualit%c3%a4t-der-beitr%c3%a4ge-l%c3 ...

Gruß
Bitte warten ..
Mitglied: linkit
12.05.2009 um 14:41 Uhr
Das sind Kommandoparameter, wenn du in der Kommandozeile die Datei aufrufst, kannst du Paramter übergeben so wie bei den Kommadobefehlen von Windows:

Beispiel Befehl dir ==> der zeigt dir das aktuelle Verzeichnis
dir /s ==> zeigt dir das aktuelle und alle Unterverzeichnisse

/s ist somit %1

die paramter werden nach dem Befehl mit Leerzeichnen eingegeben: Befehl LEER %1 LEER %2 LEER %3
Bitte warten ..
Mitglied: Pantherstyle
12.05.2009 um 15:12 Uhr
Sorry, wenn ich eine unhöfliche Art zu fragen habe, aber das Hallo dachte ich mir kommt am besten wie im realen Leben einmal am Tag wenn es noch nicht gesagt wurde. Das mit dem Danke kommt bei mir immer wenn das Problem für mich gelöst wurde. Falls der Link darauf hinweisen sollte, dass meine Frage zu unwichtig ist, dann werde ich das Forum nicht mehr belästigen und mir ein anderes suchen. Andernfalls hoffe ich, dass ich jetzt vom Stil her verstanden werde.

@linkit
Wenn ich das jetzt richtig verstehe müsste die Datei in der DOS-Shell aufgerufen und mit 3 Befehlparametern übergeben werden, oder hohlt sich das Script diese automatisch über den bisher geposteten Code?
Bitte warten ..
Mitglied: 60730
12.05.2009 um 15:23 Uhr
Servus,

der link diente dazu, dir begreiflich zu machen, warum ich so nett bin

Und da du deine Antwort wohl ausschliesslich nach der Überschrift des verlinkten Artiels verfasst hast - scheint mir mein anderes Vorurteil - liesst eh keiner - siehe Text im verlinkten Artikel - war keines.

Und nichts freut mich mehr, als widerlegt zu werden (edit -speziell in diesem Fall /edit)

meine Frage zu unwichtig ist, dann werde ich das Forum nicht mehr belästigen..

Du, bitte nicht so, weil dann komme ich dir mit dem gleichen O-Ton - wen der link den ich dir geschrieben habe zu unwichtig zum lesen ist - bla bla - auf das Niveau wollte ich eigentlich nicht.

Und ja - parameter werden angehängt. Siehe Text vom Biber

btw: es wäre auch tatsächlich "Heute" dein erster Text gewesen, wenn du es so genau wissen möchtest - ein Hallo hätte also laut deiner Aussage grade noch so gepasst

Gruß
Bitte warten ..
Mitglied: Pantherstyle
12.05.2009 um 15:45 Uhr
Das "Hallo" habe ich mit der einleitenden Fragestellung an alle die dieses Thema ansehen wollen geliefert (morgen gäbe es noch eines, wenn das Problem akut bleibt). Der bösartige Unterton meiner Aussage war wirklich beabsichtigt, da ich mich der Dame aus deinem geposteten Link nahe gefühlt habe. Meine Fragen, stelle ich zumeist erst nach Stundenlangem durchdenken (Compiler spielens) und oder quälens von google. Da mir der passende Suchbegriff für google gefehlt hat (wie verwertet man %1 und DOS?) habe ich diverse Batch-Tutorials zum Teil erneut durchforstet und nichts darauf zutreffendes gefunden. Mir ist das selbst peinlich genug wenn ich mich vor Dummheit selbst geißeln muss, wenn Jemand in einem Forum meine Blockade löst. Leider ist es so manchem Antwortenden die höchste Intension zu zeigen, dass er es so drauf hat, dass er die professionellen Fehler in einem Text säuberlich aufzählt (z.B. es heißt DOS-Shell und nicht DOS-Box) ohne dabei das Problem nur ein wenig zu sichten. Keine Kritik an Eurem Forum, denn ich stelle hier gerne meine Fragen, da einem wirklich geholfen wird. Ich stelle auch meine Fragen so präzise wie es mir möglich ist, halt so wie ich sie selbst gerne lesen würde.

Tut mir jetzt doppelt sorry dass ich etwas patzig war aber Hilfe brauche ich denke ich weiterhin. Was ich mir noch nicht vollständig vorstellen kann ist die Form in der ein korrekter Aufruf der Datei erfolgen muss.

Wie ich es jetzt aufgefasst habe:

cd C:\Arbeitskopie\trunk\Daten\SoftwarePaket

svn_merge.bat \%1 \%2 \%3

...

"Done"


Aber eine derartige Eingabe habe ich noch nicht gesehen, weshalb ich vermutet habe, dass diese Daten vor der 1. Subroutine eingelesen werden. evtl durch
svn --version --quiet

Ich hoffe mal dass ich keine triviale Frage stelle (edit: Unterton wirklich nicht beabsichtigt)
Bitte warten ..
Mitglied: 60730
12.05.2009 um 15:59 Uhr
Servus,

Beispiel.cmd
01.
if not "%1"=="" if not "%2"=="" if not "%3"=="" echo Parameter 1=%1-Parameter 2=%2-Parameter 3=%3
schreib das in eine bat / cmd und starte es aus einer Dosbox, Dosshell oder in einer MS-DOS-Eingabeaufforderung mit test 1 2 3 oder anderen 3 mit leerzeichen getrennten Buchstaben / Wörtern.

Gruß
Bitte warten ..
Mitglied: geTuemII
12.05.2009 um 16:04 Uhr
Hallo Panther,

willkommen erstmal im Forum.

[korrekter Aufruf der Datei]
cd C:\Arbeitskopie\trunk\Daten\SoftwarePaket
svn_merge.bat \%1 \%2 \%3

genau so. Oder halt die direkte Variante: C:\Arbeitskopie\trunk\Daten\SoftwarePaket\svn_merge.bat \%1 \%2 \%3

Im Code siehst du übrigens gleich dreifach, wie der Aufruf aussehen muß: usage: svn_merge.bat repository workdirectory datafile

In Zeile 17 wird geprüft, ob das erste Argument vorhanden ist wenn ja, wird mit dem Wert die Variable REPOS belegt, falls nicht, wird die obige Info über den korrekten Aufruf des Batches ausgegeben. In Zeile 19 wird überprüft, ob ein zweites, in Zeile 21, ob auch ein drittes Argument vorhanden ist und die Variablen entsprechend belegt.

geTuemII
Bitte warten ..
Mitglied: Pantherstyle
12.05.2009 um 16:04 Uhr
Hallo und Danke (das war jetzt Spaßeshalber). Mit dieser Antwort kann ich gut weitermachen. Jetzt versteh ich nämlich wo er sich den Unsinn herhohlt und an was ich rumspielen muss um es zu verstehen. Das Thema ist wahrscheinlich noch aktuell, da noch nicht AlleKlarheiten beseitigt sind.

Aber auf jeden Fall dankeschön erstmal (das Danke jetzt weil echt geholfähn).
Bitte warten ..
Mitglied: Pantherstyle
12.05.2009 um 16:06 Uhr
Ok jetzt kann das Topic geschlossen werden Danke Allen!
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

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

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

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

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...