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 mit ungefärem Zeichensatz vergleichen

Mitglied: Rufio3000

Rufio3000 (Level 1) - Jetzt verbinden

15.09.2009, aktualisiert 10:54 Uhr, 3780 Aufrufe, 8 Kommentare

Ich würde ganz gerne eine "dynamische Variable" mit Textteilen vergleichen, die nicht exakt mit der Variablen übereinstimmen.

Hi und einen schönen guten Morgen,
habe hier schon oft Anregungen und Tipps gefunden, aber diesmal hilft wohl nur ein eigener Beitrag.

Also, mein Problem ist folgendes:

Ich lese mehrere Dateien aus einem Verzeichnis aus und lasse, per ECHO, die Dateinamen und weitere relevante Informationen in eine Textdatei ausgeben.
Das funktioniert auch alles wunderbar, allerdings schaffe ich es nicht einen Vergleich anzustellen, bei dem die "ungefären" Textteile der Variablen als TRUE angesehen werden...

Hier mal das Bisherige:
@FOR /F "delims=" %%i IN ('DIR %SS%\*.exe *.msi /B') DO (
@IF "%%~ni" == "Name der Software OHNE Versionsnr. und u.U. mit Leerzeichen" SET "Silent=%MSI%"
@ECHO Filename: "{src}\%SS%\%%i"; Parameters: "%Silent%"; %RunFlags%>>Setup.txt
@PAUSE
)

Die Variable %MSI% ist schon definiert und soll, bei Vorhandensein eines bestimmten Dateinamens bzw. Names der Software, der durch %%~ni übergeben wird, an Stelle von %Silent% verwendet werden.
Da sich die Dateienamen mit der Versionsnr. (welche ich unbedingt beibehalten will) ändern, soll der Vergleich eben nur "so in etwa" stattfinden.
Ist es irgendwie möglich dass der Vergleich TRUE ergibt, wenn 2 oder mehr übereinstimmende Textteile mit %%~ni verglichen werden?

Danke schonmal für eure Hilfe, ihr schafft das!

MfG

Rufio3K
Mitglied: Rufio3000
15.09.2009 um 09:52 Uhr
Bitte kein VB.
Würde die ganze Sache gerne per Batch lösen.
Falls dafür seperate Software benötigt wird und diese Freeware ist, würde ich das ebenfalls dulden ;)
Bitte warten ..
Mitglied: bastla
15.09.2009 um 10:14 Uhr
Hallo Rufio3000!

Wenn ich "Zeichensatz" in Deinem Sinn richtig interpretiere, ist damit "Textteil" gemeint - in diesem Fall kannst Du mehrere "findstr" kombinieren, um auf eine entsprechende Anzahl an Übereinstimmungen zu prüfen - ungetestet also etwa:
01.
@echo off & setlocal 
02.
FOR /F "delims=" %%i IN ('DIR %SS%\*.exe *.msi /B') DO ( 
03.
    echo %%i|findstr /b /i "Name">nul && echo %%i|findstr /i "der">nul && echo %%i|findstr /i "Software">nul && set "Silent=%MSI%" 
04.
    ECHO Filename: "{src}\%SS%\%%i"; Parameters: "%Silent%"; %RunFlags%>>Setup.txt 
05.
    PAUSE 
06.
)
Zur Info: findstr /?

Grüße
bastla

P.S.: Da ich auch "duldsam" bin , nur als Hinweis für das nächste Mal: https://www.administrator.de/helpsystem/detail.php?idx=20#toc27
Bitte warten ..
Mitglied: Rufio3000
15.09.2009 um 10:25 Uhr
Textteile, richtig... hab's korrigiert.

Leider funktioniert deine Variante nicht.
Die Befehle werden zwar ausgeführt, allerdings wird %Silent% nicht ersetzt, sondern bleibt weiterhin bestehen.
Also, nichts steht da wo eigentlich %SILENT% bzw. %MSI% stehen müsste...
Woran kann das liegen?
Habs auch schon mit !Silent! probiert, allerdings ebenfalls ohne Erfolg
Bitte warten ..
Mitglied: Rufio3000
15.09.2009 um 13:00 Uhr
So, hab's jetzt so gelöst:

@FOR /F "delims=" %%i IN ('DIR %SS%\*.exe *.msi /B') DO (
ECHO %%~ni|FINDSTR /I "Name der Software" && IF %ERRORLEVEL% == 0 SET Silent=%MSI%
ECHO Filename: "{src}\%SS%\%%i"; Parameters: "!Silent!"; %RunFlags%>>Setup.iss
SET Silent=
)

Danke trotzdem für die Hilfe

MfG
Rufio3K
Bitte warten ..
Mitglied: bastla
15.09.2009 um 13:39 Uhr
Hallo Rufio3000!

Sorry - hatte nicht auf die Schleife geachtet ...
Habs auch schon mit !Silent! probiert, allerdings ebenfalls ohne Erfolg
So sollte es (noch immer ungetestet) mit "!Silent!" klappen:
01.
@echo off & setlocal enabledelayedexpansion 
02.
FOR /F "delims=" %%i IN ('DIR %SS%\*.exe *.msi /B') DO ( 
03.
    echo %%i|findstr /b /i "Name">nul && echo %%i|findstr /i "der">nul && echo %%i|findstr /i "Software">nul && set "Silent=%MSI%" 
04.
    ECHO Filename: "{src}\%SS%\%%i"; Parameters: "!Silent!"; %RunFlags%>>Setup.txt 
05.
    PAUSE 
06.
)
Grüße
bastla
Bitte warten ..
Mitglied: bastla
15.09.2009 um 13:42 Uhr
Hallo Rufio3000!

Wenn Du nur ein einziges "findstr" verwendest und der "Name der Software" Leerzeichen enthält, wird nach jedem einzelnen Wort dieses Namens gesucht und der Errorlevel ist 0, wenn auch nur eines davon im Dateinamen enthalten ist ...

... abgesehen davon, dass Du (wegen der Schleife) !ERRORLEVEL! abfragen müsstest (daher verwende ich stattdessen auch &&).

Grüße
bastla
Bitte warten ..
Mitglied: Rufio3000
15.09.2009 um 13:58 Uhr
Recht haste, habe noch ein /C: vor den Textteil gepackt und so macht's auch was es soll:

@FOR /F "delims=" %%i IN ('DIR %SS%\*.exe *.msi /B') DO (
ECHO %%~ni|FINDSTR /I /C:"Name der Software" && IF %ERRORLEVEL% == 0 SET Silent=%MSI%
ECHO Filename: "{src}\%SS%\%%i"; Parameters: "!Silent!"; %RunFlags%>>Setup.iss
SET Silent=
)

BTW: Irgendwie gingen die letzten Einträge bischen durchnander... siehe Timestamp; das mit !Silent! hatte ich schon so gemacht.
Also, vielen Dank für deine Hilfe

MfG
Rufio3K
Bitte warten ..
Mitglied: Rufio3000
15.09.2009 um 14:11 Uhr
Ah, wusste nicht mehr genau was das && zu bedeuten hat, aber danke.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch Abfrage Vergleiche mit Variable goto

gelöst Frage von ZunarasBatch & Shell4 Kommentare

Schönen guten Tag! ich habe mir ein Script gebastelt. Mehr nach dem Try and Error Prinzip als wirklichem Können. ...

Batch & Shell

In Batch eine Text Variable und ein Array vergleichen

Frage von DrMarksmanBatch & Shell5 Kommentare

Hallo Leute! Ich habe mich wieder zu meinen Ursprüngen des Programmierens zurück begeben und bin dabei ein kleines Programm ...

Batch & Shell

Javaversion mit Batch vergleichen und Übergabe Variable an VBScript

gelöst Frage von tklineBatch & Shell4 Kommentare

Hallo Leute, Hab mal wieder ein Spezialfall für euch Profis :-) Folgender Sachverhalt: Ein selbstgeschriebenes Programm namens "Breadcrumb" schreibt ...

Batch & Shell

Inhalt eines Ordners mit einem Teil einer Variable vergleichen und Exoten ausweisen

gelöst Frage von giadscBatch & Shell2 Kommentare

Hallo zusammen, Es ist schon wieder eine Zeit her als ich am "FOR"zweifeln war das Ding werde ich echt ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 36 MinutenHumor (lol)

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Olle Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 8 StundenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 22 StundenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 1 TagWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
Server SSD: NVMe PCIe 3.0 RAID?
Frage von bouneeFestplatten, SSD, Raid15 Kommentare

Hallo liebe Admins, mir stellt sich gerade die Frage, ob ein neuer Server mit SSD NVMe PCIe 3.0 Sinn ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit14 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

LAN, WAN, Wireless
OpenVPN Client Fehlermeldungen
Frage von chris84LAN, WAN, Wireless14 Kommentare

Hallo Zusammen, wir nutzen seit kurzem einen neuen Router und den OpenVPN Client. Die VPN Verbindung klappt; allerdings kommen ...