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

Mitglied: Larz

Larz (Level 2) - Jetzt verbinden

31.03.2011 um 18:13 Uhr, 5987 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

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 2 TagenAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 3 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...

Grafikkarten & Monitore
4k EIZO Monitor, Fernseher und Splitter
Frage von LerxxeyGrafikkarten & Monitore9 Kommentare

Hallo Zusammen, vielleicht könnt ihr mir bei einem Problem helfen wo ich einfach nicht mehr weiterkomme Und zwar haben ...

Router & Routing
WRT keine Verbindung zum Web Interface
Frage von ILeonardRouter & Routing9 Kommentare

Hallo, Ich habe einen TP-Link WR841n mit wrt geflasht, das Problem ist ich kann mich mit 192.168.1.1 nicht verbinden. ...

Humor (lol)
Nerd Zeitschrift gesucht
Frage von 2SeitenHumor (lol)6 Kommentare

Hey Zusammen, Ich suche eine Zeitschrift bei der es ums technische Basteln geht. Pc zusammenschrauben, Arduino Projekte, Server Tipps ...