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

gelöst Variable an Batch-Datei übergeben

Mitglied: MarcoBorn

MarcoBorn (Level 1) - Jetzt verbinden

04.07.2013, aktualisiert 11.07.2013, 4090 Aufrufe, 9 Kommentare

Hallo Forum,
ich muss in einem VB.NET-Skript eine Batch-Datei aufrufen. Das Batch-File benötigt jedoch eine Variable, die erst im Laufe des .NET-Skripts mit einem Wert belegt wird. Wie kann ich diese Variable an die Batch-Datei übergeben?

Vielen Dank,
M. Born
Mitglied: colinardo
04.07.2013, aktualisiert um 08:53 Uhr
Hallo M. Born,
die Variable als Kommandozeilen-Parameter beim Aufruf der Batch übergeben, und dann in der Batch mit %1 darauf zugreifen.

Grüße Uwe
Bitte warten ..
Mitglied: MarcoBorn
04.07.2013 um 08:58 Uhr
Hallo Uwe,
wie übergebe ich den Parameter? Einfach mit einem Blank dazwischen oder mit Backslash? Könntest Du mir eine kurze Beispiel-Codezeile schreiben? Ich bin mit Batch-Dateien kaum bewandert.

Vielen Dank,
Marco
Bitte warten ..
Mitglied: colinardo
04.07.2013, aktualisiert um 09:07 Uhr
ja einfach ein Leerzeichen zwischen Batch und Parameter. Wenn der Parameter ein Leerzeichen enthält in Anführungszeichen einschließen.
01.
deineBatch.cmd "Parameter1" "Parameter2"
In der Batchdatei greifst du dann auf die Parameter mit %1 für Parameter1, %2 für Parameter2 , usw. zu.
Bitte warten ..
Mitglied: MarcoBorn
04.07.2013 um 09:20 Uhr
Vielen Dank.
Bitte warten ..
Mitglied: MarcoBorn
11.07.2013 um 09:57 Uhr
Hallo Forum,
nach ein paar Tagen Pause konnte ich mich jetzt wieder dem Problem widmen. Ich habe in VB folgenden Aufruf:

version_nr = Assembly.GetExecutingAssembly.GetName.Version.ToString
errorlvl = Shell("C:\Users\Born\Documents\SharpDevelop Projects\tools\Verpatch\mbo_start.bat " & version_nr)
MsgBox(errorlvl)

Rufe ich die Batch-Datei manuell auf, läuft das Skript sauber durch und ich erhalte errorlvl=0 zurück. Starte ich die Batch jedoch über den oben genannten Code erhalte ich immer errorlvl-Werte <>0, die auf einen Fehler hinweisen und auch das Ergebnis der Batch ist nicht korrekt. Die Batch selbst sieht wie folgt aus:

set _v=%1
verpatch.exe fkgendna-packed.xll /va %1 /s desc "FKGenDNA" /s copyright "(C) 2004-2013, DOK" /pv %1
@echo Errorlevel=%errorlevel%


Was mache ich hier falsch?
Bitte warten ..
Mitglied: Biber
11.07.2013 um 10:16 Uhr
Moin MarcoBorn,

vermutlich wird beim Aufruf über Bande die Batchdatei aus einem anderen Laufwerk/Pfad gerufen.
Beim manuellen Aufruf der Batchdatei, der wahrscheinlich aus dem Verzeichnis "C:\Users\....\Verpatch\" erfolgt, wird in ebendiesem Verzeichnis auch die "verpatch.exe" gesucht und gefunden - bei einem Aufruf über VB auch dem Verzeichnis "X:\Y" wird diese Verpatch im Verzeichnis "X:\Y" gesucht und nicht gefunden.

-> Gib am besten der Verpatch.exe in der Batchdatei den vollständigen Pfad mit.

Oder lass die Batch-Hülle weg und rufe die Verpatch.exe aus VB direkt auf.

Grüße
Biber
Bitte warten ..
Mitglied: MarcoBorn
11.07.2013 um 10:31 Uhr
Hallo Biber,
das mit den Paden habe auch schon probiert; ich hatte sie hier weggelassen, weil sie so viel Platz wegnehmen. Den Aufruf der Exe direkt aus VB mit Hilfe des folgenden Befehls scheitert leider ebenfalls:

version_nr = Assembly.GetExecutingAssembly.GetName.Version.ToString
errorlvl = Shell("C:\Users\Born\Documents\SharpDevelop Projects\tools\Verpatch\verpatch.exe C:\Users\Born\Documents\SharpDevelop Projects\tools\Verpatch\fkgendna-packed.xll /va version_nr /s desc ""FKGenDNA"" /s copyright ""(C) 2004-2013, DOK"" /pv version_nr " & version_nr)
MsgBox(errorlvl)

Was mache ich nur verkehrt?
Bitte warten ..
Mitglied: colinardo
11.07.2013, aktualisiert um 11:22 Uhr
Zitat von MarcoBorn:
Was mache ich nur verkehrt?
Hallo MarcoBorn,
Der Shell Befehl in VB gibt nicht einen Fehlerwert zurück sondern die Task-ID des gestarteten Prozesses als Variant(Double).
Wenn du den Errorlevel des ausgeführten Befehls erhalten möchtest kannst du das so machen:
01.
Set WshShell = CreateObject("Wscript.Shell") 
02.
errorlvl = wshshell.Run ("""C:\Users\Born\Documents\SharpDevelop Projects\tools\Verpatch\verpatch.exe"" ""C:\Users\Born\Documents\SharpDevelop Projects\tools\Verpatch\fkgendna-packed.xll"" /va version_nr /s desc ""FKGenDNA"" /s copyright ""(C) 2004-2013, DOK"" /pv version_nr " & version_nr, 0, true) 
03.
MsgBox(errorlvl)
oder mit dem Exec-Object der WSHSHELL:
01.
Set WshShell = CreateObject("Wscript.Shell") 
02.
set oExec = wshshell.Exec ("""C:\Users\Born\Documents\SharpDevelop Projects\tools\Verpatch\verpatch.exe"" ""C:\Users\Born\Documents\SharpDevelop Projects\tools\Verpatch\fkgendna-packed.xll"" /va version_nr /s desc ""FKGenDNA"" /s copyright ""(C) 2004-2013, DOK"" /pv version_nr " & version_nr) 
03.
Do While oExec.Status = 0 
04.
     DoEvents 
05.
Loop 
06.
msgbox (oExec.ExitCode)
Grüße Uwe
Bitte warten ..
Mitglied: MarcoBorn
11.07.2013 um 11:20 Uhr
Hallo Uwe,
das war der entscheidende Tipp. Ich musste zwar den Code etwas umbauen, aber jetzt läuft es. Der Code muss lauten:

errorlvl = wshshell.Run ("""C:\Users\Born\Documents\SharpDevelop Projects\tools\Verpatch\verpatch.exe"" ""C:\Users\Born\Documents\SharpDevelop Projects\tools\Verpatch\fkgendna-packed.xll"" /va " & version_nr & " /s desc ""FKGenDNA"" /s copyright ""(C) 2004-2013, DOK"" & " /pv " & version_nr, 0, True)

Vielen Dank an alle, die mir geholfen haben,
Marco
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Variable in neues Batch Script übergeben

gelöst Frage von alex89Batch & Shell3 Kommentare

Hallo, ich habe mir ein Batch Script erstellt um einige adminrelevante Tools und Abfragen aus einem Menü heraus zu ...

Batch & Shell

Batch: Parameter in einer For Schleife an eine Variable übergeben

gelöst Frage von BatchAnfaenger91Batch & Shell2 Kommentare

Hallo Liebe Leute, nun bin ich fast am Ende und bleibe trotzdem an Parameterübergabe hängen. Hier ist mein bisheriger ...

Batch & Shell

Namen einer Datei als Variable beim Starten einer BatchDatei übergeben

gelöst Frage von DaTobsnBatch & Shell5 Kommentare

Hi Community, und zwar beschäftige ich mich zur Zeit mit der Sprache C. Da ich ja immer die Quellcode ...

Batch & Shell

In einer Batch variable die Datei extension ermitteln ?

gelöst Frage von KriegstreiberBatch & Shell4 Kommentare

Servus, wieder einmal stehe ich vor einem Dilemmer wo die Lösung wahrscheinlich naheliegend ist, ich aber trotzdem nicht drauf ...

Neue Wissensbeiträge
Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 8 StundenInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Erkennung und -Abwehr

Ups: Einfaches Nullzeichen hebelte den Anti-Malware-Schutzt in Windows 10 aus

Information von kgborn vor 20 StundenErkennung und -Abwehr

Windows 10 ist das sicherste Windows aller Zeiten, wie Microsoft betont. Insidern ist aber klar, das es da Lücken, ...

Windows 10

Windows 10 on ARM: von Microsoft entfernte Info - Klartext, was nicht geht

Information von kgborn vor 22 StundenWindows 10

Windows 10 on ARM ist ja eine neue Variante, die Microsoft im Verbund mit Geräteherstellern am Markt etablieren will. ...

Microsoft
TV-Tipp: Das Microsoft-Dilemma
Information von kgborn vor 23 StundenMicrosoft14 Kommentare

Aktuell gibt es in Behörden und in Firmen eine fatale Abhängigkeit von Microsoft und dessen Produkten. Planlos agieren die ...

Heiß diskutierte Inhalte
Server
Route-Befehl Unterstützung (unter CMD)
gelöst Frage von FKRR56Server35 Kommentare

Guten Tag , i.M. habe ich Probleme über den CMD-Route-Befehl ein Routing auf einen entfernten Server zuzulassen. Der Server ...

Windows 10
Windows 10 (1709) Tastur und Maus wieder einschalten?
Frage von LochkartenstanzerWindows 1028 Kommentare

Moin, Ich habe von einem Kunden einen Win10-Rechner bekommen, bei dem weder Tastatur noch Maus geht. Die Hardware funktioniert ...

Humor (lol)
Was könnte man mit einem Server machen? Idee gesucht
Frage von 2SeitenHumor (lol)15 Kommentare

Hey Zusammen Ich habe einen alten HP G2 Rackserver zu Hause rumliegen. 28GB Ram, 1xAMD Prozi mit etwa 2GHz. ...

Firewall
RB2011 Firewall Rule eine bestimmte Mac oder IP Adresse nicht zu blockieren
Frage von lightmanFirewall15 Kommentare

Hallo liebes Forum mit ihren Spezialisten. Ich habe meine Firewall so konfiguriert das kein Endgerät ohne meine Speziellen Erlaubnis ...