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

VBS-Datei via Batch erstellen

Frage Entwicklung Batch & Shell

Mitglied: Larz

Larz (Level 2) - Jetzt verbinden

31.03.2011 um 18:13 Uhr, 5945 Aufrufe, 20 Kommentare

Hallo zusammen,

ich möchte aus einer Textliste in der pro Zeile ein Druckername enthalten ist jeweils eine vbs-Datei erstellen.
Dazu habe ich folgenden Codeschnipsel:

01.
for /f %%i in (druckerliste.txt) do ( 
02.
echo Set WshNetwork = CreateObject("WScript.Network")>%%i_auf_PrintServer1.vbs 
03.
echo WshNetwork.AddwindowsPrinterConnection "\\lttps01\%%i">%%i_auf_PrintServer1.vbs 
04.
)
eigentlich erwarte ich eine Datei "HPDrucker123_auf_Printserver1.vbs" mit folgendem Inhalt:

01.
Set WshNetwork = CreateObject("WScript.Network") 
02.
WshNetwork.AddwindowsPrinterConnection "\\PrintServer1\HPDrucker123" 
Aber irgendwie klappt's nicht... help!

Gruß & Danke
Lars
Mitglied: MisterExpulso
31.03.2011 um 18:16 Uhr
Zitat von Larz:
Aber irgendwie klappt's nicht... help!

Eine überaus gut formulierte Fehlerbeschreibung.

MfG,
DB
Bitte warten ..
Mitglied: Biber
31.03.2011 um 18:28 Uhr
Moin Larz,

wenn du magst, dann würde ich gern das, was du vermutlich für eine Fehlerbeschreibung hältst, in unseren FAQ als Beispiel verwenden.

Du schreibst in dem Script-Schnipsel 2 Zeilen und legst jeweils mit ">" die Zieldatei neu an.

  • Schreib nur eine Zeile
  • oder nur die erste Zeile mit ">"und die Nachfolgezeichen mit ">>"
  • oder setze das ">" hinter die schliessende "FOR /F...DO "-Anweisungsklammer.

Grüße
Biber
Bitte warten ..
Mitglied: Skyemugen
31.03.2011 um 18:44 Uhr
Zitat von Biber:
  • oder setze das ">" hinter die schliessende "FOR /F...DO "-Anweisungsklammer.
Aloha Biber,
was natürlich zu bevorzugen ist, da die Datei somit nur einmal geöffnet werden muss (mich an Phils Tipp erinner)

btw: müsste
for /f %%i in (druckerliste.txt) do echo Set WshNetwork = CreateObject("WScript.Network"):WshNetwork.AddwindowsPrinterConnection "\\lttps01\%%i">%%i_auf_PrintServer1.vbs
nicht auch funktionieren? (wäre dann nicht zweizeilig, sollte dennoch im vbs abgearbeitet werden, wenn ich mich nicht irre)

greetz André
Bitte warten ..
Mitglied: FunkerVogt
31.03.2011 um 19:05 Uhr
echo Set WshNetwork = CreateObject("WScript.Network") > HPDrucker123_auf_Printserver1.vbs
echo WshNetwork.AddwindowsPrinterConnection "\\PrintServer1\HPDrucker123" >> HPDrucker123_auf_Printserver1.vbs


meinste so?

Muss es ne Batch Datei sein?
Bitte warten ..
Mitglied: Biber
31.03.2011 um 19:16 Uhr
Zitat von FunkerVogt:
meinste so?
meinste mich?
Bitte warten ..
Mitglied: FunkerVogt
31.03.2011 um 19:20 Uhr
Nee, den Larz!

Ganz nebenbei, wenn Du es für die FAQs gebrauchen kannst:

Das ^ ist bei schreiben in Dateien sehr hilfreich! Was da drin steht, wird als Text dort eingetragen!
Ich hatte das Problem schon mal!


Uwe
Bitte warten ..
Mitglied: Biber
31.03.2011 um 19:39 Uhr
Moin Skyemugen,

eigentlich wollte ich Larz gar nix Gabelfertiges servieren.
Der ist ist doch auch nicht erst gestern abend aus irgendeinem Wurmloch auf diesen unseren Planeten gefallen.

Aber da ich mich anscheinend zu westerwellig ausgedrückt habe, jetzt noch mal die Antwort hinter der Antwort.

Ursprungsskript:
01.
for /f %%i in (druckerliste.txt) do (  
02.
    echo Set WshNetwork = CreateObject("WScript.Network")>%%i_auf_PrintServer1.vbs 
03.
    echo WshNetwork.AddwindowsPrinterConnection "\\lttps01\%%i">%%i_auf_PrintServer1.vbs  
04.
)
  • Schreib nur eine Zeile
01.
for /f %%i in (druckerliste.txt) do (  
02.
    echo CreateObject("WScript.Network").AddwindowsPrinterConnection "\\lttps01\%%i">%%i_auf_PrintServer1.vbs  
03.
)
  • oder nur die erste Zeile mit ">"und die Nachfolgezeichen mit ">>"
Siehe unten bei FunkerVogt dem Redseligen.

  • oder setze das ">" hinter die schliessende "FOR /F...DO "-Anweisungsklammer.
Siehe bei oben zitiertem Phil-Tipp.

Grüße
Biber
Bitte warten ..
Mitglied: Larz
31.03.2011 um 19:41 Uhr
mea culpa, aber deine Antwort ist mindestens genauso gut formuliert
War etwas im Stress, normalerweise formuliere ich mehr aus... aber ist schon richtig, hätte ich weniger geschludert, wäre meine Anfrage klarer gewesen...

Gruß
Larz
Bitte warten ..
Mitglied: Larz
31.03.2011 um 19:42 Uhr
@Biber
das mit dem zweiten > war ein Tippfehler, in der erstenm Zeile ist es > in der zweiten >>
01.
for /f %%i in (druckerliste.txt) do ( 
02.
echo Set WshNetwork = CreateObject("WScript.Network")>%%i_auf_PrintServer1.vbs 
03.
echo WshNetwork.AddwindowsPrinterConnection "\\lttps01\%%i">>%%i_auf_PrintServer1.vbs 
04.
)
Mein Problem liegt darin, dass er mit eine Datei "%i_auf_PrintServer1.vbs" mit Inhalt
>WshNetwork.AddwindowsPrinterConnection "\\lttps01\%i"

eine Datei "drucker123_auf_PrintServer1.vbs" mit Inhalt
>Set WshNetwork = CreateObject("WScript.Network"

sowie eine Datei "drucker345_auf_PrintServer1.vbs" mit Inhalt
>Set WshNetwork = CreateObject("WScript.Network"

ausgibt. In der zugrunde liegenden Datei "Druckerliste.txt" stehen die Zeilen
>drucker123
>drucker345

Kann das jemand nachbauen? Ich denke es liegt an den Sonderzeichen...

Gruß
Larz
Bitte warten ..
Mitglied: Larz
31.03.2011 um 19:51 Uhr
jein - vom Code her ja, aber es soll jeweils eine Datei %%i_auf_Printserver1.vbs erstellt werden.
Batch muss es nicht unbedingt sein. Einfach nur ein Script wo aus einer Liste Druckernamen eben diese vbs-Dateien macht, mit denen man via Doppelklick o.ä. die Drucker wieder verbinden kann...

Gruß
Larz
Bitte warten ..
Mitglied: Larz
31.03.2011 um 19:52 Uhr
Wie wird das ^ verwendet? Wie Anführungszeichen?

Danke
Larz
Bitte warten ..
Mitglied: Biber
31.03.2011 um 19:53 Uhr
Moin Larz,

jetzt (mit noch detailierterer) Fehlerbeschreibung wird es klar - die im VB-Skript enthaltene KlammerZu muss maskiert werden.

POC am CMD-Prompt:
 
(=19:49:21  D:\temp=) 
>for /f %i in ("drucherxy") do @(echo CreateObject("WScript.Network").AddwindowsPrinterConnection "\\lttps01\%i">con) 
".AddwindowsPrinterConnection" ist syntaktisch an dieser Stelle nicht verarbeitbar. 
## tut nicht 
 
 
(=19:49:54  D:\temp=) 
 
>for /f %i in ("drucherxy") do @(echo CreateObject("WScript.Network"^).AddwindowsPrinterConnection "\\lttps01\%i">con) 
CreateObject("WScript.Network").AddwindowsPrinterConnection "\\lttps01\drucherxy" 
##tutet
Grüße
Biber
Bitte warten ..
Mitglied: FunkerVogt
31.03.2011 um 20:18 Uhr
Yup, genau! Ist besonders bei & also verknüpften Anweisungen zu benutzten!

Wenn Du in einer .vbs ein & per Batch schreiben möchtest, wird das
scheitern, weil ne Batch das & selbst als Kommando interpretiert!

also: ^&^ schreibt & in die .vbs

probier das und es passiert nix:
echo & > test1.vbs

probier das:
echo ^&^ > test1.vbs

Und?
Bitte warten ..
Mitglied: Skyemugen
31.03.2011 um 20:21 Uhr
Zitat von Larz:
Wie wird das ^ verwendet? Wie Anführungszeichen?

Aloha Larz,

keine Ahnung, wie du jetzt wieder Anführungszeichen definieren würdest, in welchem Zusammenhang - aber das ^ wird zum Escapen von möglichen Befehls- oder Syntaxzeichen verwendet (allerdings nicht immer und bei allen ... % lässt sich in der batch z.B. durch %% escapen [also ein weiteres Prozentzeichen])

greetz André

edit:
Zitat von FunkerVogt:
probier das:
echo ^&^ > test1.vbs

ein ^ zu viel meiner Meinung nach ;) wenn du so am prompt testest, fragt man dich höchstens, ob noch mehr kommen soll :P
Bitte warten ..
Mitglied: FunkerVogt
31.03.2011 um 20:31 Uhr
ein ^ zu viel meiner Meinung nach ;) wenn du so am prompt testest, fragt man dich höchstens, ob noch mehr kommen soll :P


Kann gut möglich sein! Ich habs nur mal schnell nebenbei probiert!
Bitte warten ..
Mitglied: bastla
31.03.2011 um 20:38 Uhr
@Skyemugen
ein ^ zu viel meiner Meinung nach ;)
Schließe mich an, wobei es aber gar nicht auffällt, wenn dahinter noch was kommt (was bei "&" ziemlich wahrscheinlich ist), da dann eben zB auch das folgende Leerzeichen escaped wird ...
Wie schon angemerkt, löst sich das "Klammerproblem" von selbst, wenn nur eine Zeile Script benötigt wird - also etwa (siehe auch oben bei Biber)
for /f %%i in (druckerliste.txt) do echo CreateObject("WScript.Network").AddwindowsPrinterConnection "\\lttps01\%%i">"%%i_auf_PrintServer1.vbs"
Wozu es x solcher Scripte braucht, ist dann aber mal wieder eine ganz andere Frage (nur als Anmerkung: auch VBS kann Aufrufparameter verwenden) ...

Grüße
bastla
Bitte warten ..
Mitglied: FunkerVogt
31.03.2011 um 20:51 Uhr
Jetzt hab ich auch noch was gelernt!

Danke!
Bitte warten ..
Mitglied: bastla
31.03.2011 um 20:52 Uhr
@FunkerVogt
(Auch) Deswegen sind wir doch alle hier ...

Grüße
bastla
Bitte warten ..
Mitglied: Larz
31.03.2011 um 20:58 Uhr
* oder setze das ">" hinter die schliessende "FOR /F...DO "-Anweisungsklammer.

Prima Idee, danke

Gruß
Larz
Bitte warten ..
Mitglied: Larz
31.03.2011 um 21:00 Uhr
*grrrr* einfach das ^hat gefehlt.... danke Biber
dachte schon nach dem Posting
"eigentlich wollte ich Larz gar nix Gabelfertiges servieren."

Du wärst ein Sadist

Problem gelöst, danke an alle

Gruß
Larz
Bitte warten ..
Ähnliche Inhalte
Windows 10
Automatisiert batch-Dateien erstellen
Frage von ScripterWindows 101 Kommentar

Hallo, bei Win 10 ist es möglich über Verknüpfungen im Startmenü mithilfe der Assistentin Cortana PROGRAMME per Sprachsteuerung zu ...

Batch & Shell
Batch-Datei erstellen
gelöst Frage von tocksickBatch & Shell2 Kommentare

Hallo liebe Gemeinde! Ich bin dabei eine Batch-Datei zu schreiben welche folgendes tun soll: Die Batch soll alle auf ...

VB for Applications
VBS oder Batch um eine Datei in Unterordner zu verschieben
Frage von MrRoyalVB for Applications1 Kommentar

Hallo zusammen, ich bin neu hier und kenne mich leider im Bereich VBS und Batch nicht so gut aus. ...

Batch & Shell
Alle Dateien mit den gleichen Namen via VBS oder Batch in den jeweiligen Ordner kopieren(erstellen)
gelöst Frage von WeezytBatch & Shell5 Kommentare

Moin Leute, ich bräuchte einen Skript (VBS oder Batch), mit der ich einen Ordner für einzelne Dateien erstellen kann. ...

Neue Wissensbeiträge
Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 2 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 2 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 14 StundenInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Verschlüsselung & Zertifikate

19 Jahre alter Angriff auf TLS funktioniert immer noch

Information von BassFishFox vor 20 StundenVerschlüsselung & Zertifikate1 Kommentar

Interessant zu lesen. Der Bleichenbacher-Angriff gilt unter Kryptographen als Klassiker, trotzdem funktioniert er oft noch. Wie wir herausgefunden haben, ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Von rj11 auf rj45
Frage von jensgebkenLAN, WAN, Wireless19 Kommentare

Hallo Gemeinschaft, könnt ihr mir vielleicht bei der anfertigung eines Kabels helfen - habe ein rj 11 stecker und ...

Netzwerkmanagement
NAS über zwei weitere Ethernet Anschlüsse verbinden
gelöst Frage von Sibelius001Netzwerkmanagement17 Kommentare

Sorry - ich bin hier wahrscheinlich als kompetter IT Trottel unterwegs. Aber eventuell kann mir jemand ganz einfach helfen: ...

Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...