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

Wert in Variable suchen / Variable ändern

Frage Entwicklung Batch & Shell

Mitglied: kinggunta

kinggunta (Level 2) - Jetzt verbinden

08.02.2007, aktualisiert 18:12 Uhr, 4635 Aufrufe, 5 Kommentare

Hallo Leute!

Ich habe in einer Batchdatei eine Variable die so Aufgebaut ist:


xyzxxxxzyzyzyz (37373) xxsxsxsx scsc


Jetzt suche ich einen Befehl der alles was hinter der letzten Klammer steht abschneidet.

Also so: xyzxxxxzyzyzyz (37373)


Die Schwierigkeit dabei ist dass die Stellen vor und nach der Klammer einmal mehr und einmal weniger sind.
Alles was ich habe ist immer diese Klammer zu Schluss ")"

Und alles dahinter soll eben abgeschnitten werden.


Bitte HILFE!

Danke
KingGunta
Mitglied: bastla
08.02.2007 um 16:28 Uhr
Hallo kinggunta!

Wenn Du so laut um Hilfe rufst, muss ich natürlich etwas versuchen:
01.
set "Drucker=HP Deskjet 840 (PC1) in Sitzung 1" 
02.
Echo WScript.Echo Left(WScript.Arguments(0), InstrRev(WScript.Arguments(0),")"))> "%temp%\GetPart.vbs" 
03.
for /f "delims=" %%i in ('cscript //nologo "%temp%\GetPart.vbs" "%Drucker%"') do set "Dr=%%i" 
04.
del "%temp%\GetPart.vbs" 
05.
echo %Dr%
(Erste und letzte Zeile zu Demozwecken)

Grüße
bastla
Bitte warten ..
Mitglied: kinggunta
08.02.2007 um 16:46 Uhr
Hallo bastla!

Danke für Deine Antwort!
Ich bin echt schon am verzweifeln. ;-(
Ich glaube du bist der einzige der mit weiterhelfen kann

Habe bis jetzt folgendes Script selbst gebaut:


on error resume next
Msgbox Printerliste

Function Printerliste()
Set shell = CreateObject("Shell.Application")
Set folder = shell.NameSpace(4)
Printerliste = vbcrlf

For Each item In folder.Items

If item.Name <> "Drucker hinzufügen" Then

arrArtikel = Split(item.Name, ")")

Printerliste = Printerliste & arrArtikel(0) & vbcrlf

End If

Next
End Function



Alles hergeleitet aus diesem Skript:

on error resume next
Bsp = ""
Msgbox Printerliste

Function Printerliste()
Set shell = CreateObject("Shell.Application")
Set folder = shell.NameSpace(4)
Printerliste = "Das sind alle verfügbaren Drucker! Bitte genaue Schreibweise beachten!" & vbcrlf

For Each item In folder.Items
If item.Name <> "Neuer Drucker" Then
Printerliste = Printerliste & item.Name & vbcrlf
Bsp = item.Name
End If
Next
End Function

Printerwechsel Inputbox("Welcher Drucker soll Standarddrucker werden?" & vbcrlf _
& Printerliste,vbQuestion,Bsp)

Function Printerwechsel(Printer)
Set shell = CreateObject("Shell.Application")
Set folder = shell.NameSpace(4)

For Each item In folder.Items
If item.Name = Printer Then item.InvokeVerb "Als S&tandard definieren"
Next
End Function

Msgbox "Aus der Registry ausgelesener Standarddrucker : " & StandardPrinter
Function StandardPrinter()
Set wshshell = CreateObject("Wscript.Shell")

key = "HKEY_LOCAL_MACHINE\Config\0001\System\CurrentControlSet\Control\Print\Printers\Default"

StandardAlt = wshshell.RegRead(key)
StandardPrinter = StandardAlt
End Function



Msgbox "Infos des Networkobjectes: " & vbcrlf & NetworkDrucker


Function NetworkDrucker()
Set Netzwerk = CreateObject("Wscript.Network")
Antwort = Msgbox("Soll der Standarddrucker mal mit dem Networkobject gewechselt werden?",vbyesNo+VBQuestion)
if Antwort = vbyes then Netzwerk.setDefaultPrinter Inputbox("Printer-Namen eingeben! " & Printerliste,vbQuestion,Bsp)
Domaen = Netzwerk.UserDomain
UName = Netzwerk.UserName
CName = Netzwerk.ComputerName
Set ndcollection = Netzwerk.EnumPrinterConnections
For Each nd In ndcollection
ndListe = ndListe & nd & Chr(13) & Chr(10)
Next
Info = ""
Info = Info & "User-Domain: " & Domaen & Chr(13) & Chr(10) _
& "User-Name: " & UName & Chr(13) & Chr(10) _
& "Computer-Name: " & CName & Chr(13) & Chr(10) _
& Chr(13) & Chr(10) & Chr(13) & Chr(10) _
& "Permanente Netzwerk_Drucker Verbindungen:" & Chr(13) & Chr(10) _
& Chr(13) & Chr(10) _
& ndListe & Chr(13) & Chr(10)
NetworkDrucker = Info
End Function




Möchte jetzt nur noch die Liste an Drucker die ich in die Massagebox ausgebe dazu verwenden
um bei die bestehenden Druckernamen zu ändern.

Allerdings schaffs ich nicht.

Bitte Hilfe mir!!
Bitte warten ..
Mitglied: bastla
08.02.2007 um 17:01 Uhr
Hallo kinggunta!

Kannst Du bitte etwas genauer ausführen (vielleicht in einem neuen Thema?), was Du benötigst (Batch ja denn wohl eher nicht mehr )?

Grüße
bastla
Bitte warten ..
Mitglied: kinggunta
08.02.2007 um 17:11 Uhr
Servus bastla!

Ich hab ein neues Thema eröffnet:
"Drucker mit VBS ubenennen"


Danke
KingGunta
Bitte warten ..
Mitglied: Biber
08.02.2007 um 18:12 Uhr
Na ja,

auch wenn das Thema eigentlich schon abgefrühstückt ist... eine Fussnote noch

01.
(=18:08:30  D:\temp=) 
02.
>set "Drucker=HP Deskjet 840 (PC1) in Sitzung 1" 
03.
(=18:08:43  D:\temp=) 
04.
>for /f "tokens=1-3 delims=()" %i in ("%Drucker%") do @echo part1[%i] part2[%j] part3[%k] 
05.
part1[HP Deskjet 840 ] part2[PC1] part3[ in Sitzung 1] 
06.
(=18:09:15  D:\temp=) 
07.
>for /f "delims=(" %i in ("%Drucker%") do @echo Drucker is' %i 
08.
Drucker is' HP Deskjet 840 
09.
(=18:10:05  D:\temp=) 
10.
>for /f "delims=)" %i in ("%Drucker%") do @echo Drucker is' %i) 
11.
Drucker is' HP Deskjet 840 (PC1)
Gruss Biber
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
Wert in Registry suchen und in Variable speichern (2)

Frage von J.Troll zum Thema Batch & Shell ...

Batch & Shell
Wert in einer TXT Datei suchen (11)

Frage von nolle99 zum Thema Batch & Shell ...

Batch & Shell
gelöst Variable über Wert aussuchen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (12)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...