ozzestriker
Goto Top

Vergleich zweier Dateien Updates

Hallo ich bin neu hier und bräuchte ganz dringend Hilfe bei einem Problem. Wäre nett wenn Ihr mir helfen könntet.

Es geht um folgendes.

Ich habe zwei .txt Dateien ca. in folgendem Style:

Datei1:

Office_2012_1
Windows_XP_#18
Office_#7.1
Word_#14
usw.


Datei2:
Office_2012_3
Windows_XP_#19
Office_#7.1
Word_#15
usw.

Datei 1 ist von einem Rechner aus einem Installationslog. Es zeigt Software an welche darauf installiert ist.

Datei 2 ist von einem Server welcher die Rechner mit Updates versorgt. Die Updates auf dem Server werden automatisch hochgeladen. Dort erstelle ich mir immer eine aktuelle txt mit den im Moment aktuellen Updates.

Mein Problem ist jetzt das ich die beiden Datei vergleichen will und als Ergebnis heraus bekomme, dass wie oben in dem Beispiel zu sehen ein Update für Office ein Update für Windows und ein Update für Word verfügbar ist.

am liebsten als Batch.

Content-Key: 189855

Url: https://administrator.de/contentid/189855

Printed on: April 25, 2024 at 02:04 o'clock

Member: bastla
bastla Aug 20, 2012 at 12:47:36 (UTC)
Goto Top
Hallo Ozzestriker und willkommen im Forum!

Im Prinzip sollte dafür eine Zeile reichen:
findstr /vg:Datei2 Datei1
Grüße
bastla
Member: Ozzestriker
Ozzestriker Aug 20, 2012 at 13:17:04 (UTC)
Goto Top
Hi,

ich hatte mir vorgestellt, dass ich am Schluss eine Liste habe mit allen Updates die noch installiert werden müssen.
sprich wenn er in der txt des Rechners eine Software drin hat mit einem alten Stand/Version und in der txt vom UpdateServer eine neuere Version drin steht das er mir dann ausgibt : Installiere das Paket xyz weil es neuer ist als die bestehende Version
Member: bastla
bastla Aug 20, 2012 at 14:08:58 (UTC)
Goto Top
Hallo Ozzestriker!
Installiere das Paket xyz weil es neuer ist als die bestehende Version
Ist denn davon auszugehen, dass es am Server (in der Datei2) auch ältere Versionen gibt? face-wink Anyhow, wenn die Einträge einheitlich ein "#" vor der Versionsnummer hätten, ginge das etwa so:
@echo off & setlocal
set "Aktuell=Datei"  
set "Update=Datei2"  

for /f "usebackq tokens=1* delims=#" %%i in ("%Aktuell%") do (  
    for /f "tokens=1* delims=#" %%a in ('findstr /b "%%i" "%Update%"') do if %%b gtr %%j echo Installiere das Paket %%i#%%j weil es neuer ist als die bestehende Version  
)
Grüße
bastla
Member: Ozzestriker
Ozzestriker Aug 20, 2012 at 14:25:29 (UTC)
Goto Top
Hi,

ja leider ist es nicht so einfach.

Um das noch einmal etwas zu verdeutlichen:
Es gibt folgende Einträge in den txt files:

Word2010_1.0 sozusagen das Grundpaket

dann gibt es aber auch
Word2010_1.0#1 was sozusagen ein Update des Grundpakets ist

Es gibt aber auch
Word2010_1.1

Wenn du willst kann ich dir die Liste ja einmal zukommen lassen ist nicht ganz so einfach mit den zwei txt files.
Member: bastla
bastla Aug 20, 2012 at 15:26:16 (UTC)
Goto Top
Hallo Ozzestriker!

Du kannst die beiden Listen ja (zwischen <code> und </code>) posten - und vor allem auch, wie die sich daraus ergebende Ausgabe aussehen soll ...

Grüße
bastla
Member: Ozzestriker
Ozzestriker Aug 21, 2012 updated at 10:12:15 (UTC)
Goto Top
Hi Bastla,

Die Ausgabe soll so aussehen das ich als Ergebnis des Vergleiches eine Liste habe mit allen Updates der auf dem Rechner installierten Pakete. Sprich Wenn ein neues Update für ein bereits installiertes Paket verfügbar ist soll er mir dieses Updatepaket anzeigen.


Ausschnitt Rechner txt
ITBETRIEB_32_9_1_1_C   
 JRE_32_9_1   
 JRE_8_1   
 JRE_9_0   
 JRE_96_11_0   
 JRE_VOR_32_9_1   
 JRE_VOR_96_11_0   

Ausschnitt Update Server txt
JRE_64_9.2
JRE_96_11.2
JRE_96_11.3
JRE_96_12.0
JRE_VOR_96_11.2
JRE_VOR_96_11.3
JRE_VOR_96_12.0

Ergebniss sollte ungefair so aussehen
 JRE_96_12.0
JRE_VOR_96_12.0
Member: bastla
bastla Aug 21, 2012 updated at 09:56:42 (UTC)
Goto Top
Hallo Ozzestriker!

Und die "Rechner.txt" hat allen Ernstes eine unterschiedliche Anzahl von Leerzeichen am Zeilenanfang und "_" in der Versionsnummer, die es so in der "Update Server.txt" nicht gibt? Falls ja, wäre der erste sinnvolle Schritt, das (in der "Update Server.txt") anzugleichen ...

Und: Wenn sich schon nicht ein eindeutiges Trennzeichen zwischen Programmname und Versionsnummer einführen lassen sollte, müsste zumindest sicher gestellt sein, dass alles nach dem letzten "_" die Versionsnummer darstellt ...

Grüße
bastla
Member: Ozzestriker
Ozzestriker Aug 21, 2012 at 10:11:53 (UTC)
Goto Top
Hi,

sorry mein Fehler es gibt keine Leerzeichen in der Rechner.txt

Habs oben auch abgeändert.

Sorry
Member: bastla
bastla Aug 21, 2012 updated at 10:35:02 (UTC)
Goto Top
Hallo Ozzestriker!
Habs oben auch abgeändert.
Hast Du nicht - es gibt ab Zeile 2 der "Rechner.txt" am Zeilenanfang immer noch jeweils ein Leerzeichen (und am Zeilenende sogar mehrere) ...

... abgesehen davon bleibt noch die Frage nach der Trennung der Versionsnummer vom Namen offen, bzw auch die Überlegung, zumindest auch in der "Update Server.txt" anstelle des "." einen "_" zu verwenden ...
Für diese "Rechner.txt"
ITBETRIEB_32_9_1_1_C
JRE_32_9_1
JRE_8_1
JRE_9_0
JRE_96_11_0
JRE_VOR_32_9_1
JRE_VOR_96_11_0
und diese "Update Server.txt"
JRE_64_9_2
JRE_96_11_2
JRE_96_11_3
JRE_96_12_0
JRE_VOR_96_11_2
JRE_VOR_96_11_3
JRE_VOR_96_12_0
ließe sich, unter der Voraussetzung, dass alle Versionsnummern zweistellig sind, mit diesem Batch
@echo off & setlocal
set "Aktuell=Rechner.txt"  
set "Update=Update Server.txt"  
set "Liste=ErforderlicheUpdates.txt"  

type nul>"%Liste%"  
for /f "usebackq skip=1 delims=" %%i in ("%Aktuell%") do set "EintragA=%%i" & call :ProcessEntry  
type "%Liste%"  
goto :eof

:ProcessEntry
pushd C:\
for %%a in (%EintragA:_=\%\..) do set "Name=%%~dpa" & set "VA=%%~nxa"  
set "Name=%Name:C:\=%"  
popd
set "Name=%Name:\=_%"  
set "EintragU="  
for /f "delims=" %%a in ('findstr /bic:"%Name%" "%Update%"') do set "EintragU=%%a"  
if not defined EintragU goto :eof
call set "VU=%%EintragU:*%Name%=%%"  
if %VU% gtr %VA% findstr "%EintragU%" "%Liste%">nul || >>"%Liste%" echo %EintragU%  
goto :eof
Dein gewünschtes Ergebnis erzeugen ...

Grüße
bastla
Member: Ozzestriker
Ozzestriker Aug 21, 2012 at 11:50:46 (UTC)
Goto Top
Hi Bastla,

ich wusste das ich hier im richtigen Forum bin und du der Richtige für dieses Problem. Aber ich werde jetzt mal die gesamte Liste posten. Hoffe du kannst mir dann trotzdem noch weiterhelfen.

Rechner txt:
 ABITNET_10   
 ACROBAT_7_0_7   
 ACROREAD_32_9_3_2   
 ACROREAD_32_9_5   
 ACROREAD_8_2   
 ADOFLASH_PLAYER_9_0_124_0   
 ARS_5_01_02_1   
 BCM_TOOL_3_0_C   
 BCM_TOOL_32_8_0_1_3_C   
 BCM_TOOL_32_9_1_1_C   
 BCM_TOOL_7_0_1_C   
 BCM_TOOL_7_0_1_C   
 BCM_TOOL_8_0_1_C
 BORIWEKL_2006_1   
 BUISY_6_5_I   
 BUISYIMMO_7_0_H   
 BUISYTESO_6_5_I   
 BUSINESSOBJECTS_1_0   
 CITRIXREGS_1_1   
 DB2_CLIENT_9_5_1   
 DB2_CLIENT_96_9_5_4_9_1   
 DB2_CLIENT_INST_32_9_5_6_11_0   
 DB2_CLIENT_KONF_32_9_5_6_11_0   
 DMS_CLIENT_32_9_1   
 DMS_CLIENT_8_0   
 DMS_CLIENT_8_0   
 DMS_CLIENT_96_11_1   
 DMS_CLIENT_96_11_1#1   
 DMS_CLIENT_96_9_2   
 DORIAN_ADMIN_1_0   
 DRUCKTR_WIN_OSP_32_5_07   
 DRUCKTR_WIN_OSP_32_5_09   
 DRUCKTR_WIN_OSP_5_04   
 DRUCKTR_WIN_OSP_5_05_1   
 DRUCKTR_WIN_OSP_5_06   
 DV_KOSTENPLANER_3_5_C   
 ELAN_8_0   
 ELSTER2008_1_0   
 ELSTER2009_1_0   
 EPOAGENT_4_0_0_1180   
 EPOAGENT_4_5_0_1499   
 EPOVSCAN_8_7   
 EPOVSCAN_8_7P4   
 EVIDENZ_2_05_C   
 EXTRA_8_02   
 FRONTPAGE_2003_1   
 FSC_SRVVIEWAGT_4_30_13   
 HINTERGRUND_1_0   
 IBO_1_1   
 ICA_CLIENT_11_0   
 ICA_CLIENT_11_0_1   
 ICA_CLIENT_32_11_0_2   
 ICA_CLIENT_32_11_0_3   
 IDV_OFFICE_6_1_C   
 IDV_OFFICE_TS_32_11_1   
 IDV_OFFICE_TS_32_9_1_1   
 IDV_OFFICE_TS_8_1_1   
 INTEXPL_32_8_0_2   
 INTEXPL_8_0   
 INTEXPL_UPD_32_8_0_2   
 INTEXPL_UPD_8_0_1   
 ISP_32_11_0   
 ITBETRIEB_32_9_1_1_C   
 ITBETRIEB_8_1_1_C   
 JRE_32_9_1   
 JRE_8_1   
 JRE_9_0   
 JRE_96_11_0   
 JRE_VOR_32_9_1   
 JRE_VOR_96_11_0   
 KASSE_TSE_32_11_1   
 KASSE_TSE_32_9_1   
 KASSE_TSE_8_1   
 KEYMANAGER_1_4   
 KOHLKG_5_0   
 KP_ACROREAD_32_9_3_2#1   
 KP_ACROREAD_32_9_3_2#2   
 KP_ACROREAD_32_9_3_2#3   
 KP_ACROREAD_32_9_3_2#3   
 KP_ACROREAD_32_9_3_2#5   
 KP_ACROREAD_32_9_3_2#8   
 KP_ACROREAD_32_9_5#3   
 KP_ACROREAD_8_2#1   
 KP_ACROREAD_8_2#2   
 KP_ACROREAD_8_2#4   
 KP_DMS_CLIENT_8_0#2   
 KP_DMS_CLIENT_8_0#2   
 KP_ICA_CLIENT_11_0#1   
 KP_ICA_CLIENT_32_11_0_3#2   
 KP_IDV_OFFICE_TS_8_1_1#1   
 KP_INTEXPL_UPD_32_8_0_2#2   
 KP_INTEXPL_UPD_32_8_0_2#4   
 KP_INTEXPL_UPD_32_8_0_2#7   
 KP_INTEXPL_UPD_8_0_1#2   
 KP_INTEXPL_UPD_8_0_1#3   
 KP_INTEXPL_UPD_8_0_1#4   
 KP_INTEXPL_UPD_8_0_1#5   
 KP_INTEXPL_UPD_8_0_1#6   
 KP_INTEXPL_UPD_8_0_1#7   
 KP_JRE_96_11_0#2   
 KP_KASSE_TSE_32_9_1#1   
 KP_LONOTESREQ_6_5_5#3   
 KP_LONOTESREQ_8_0_2#2   
 KP_LONOTESREQ_8_0_2#3   
 KP_LONOTESREQ_8_0_2#4   
 KP_MS_NETFRAMEWORK_3_5_2#1   
 KP_OFFICE_PROF_2003_2#1   
 KP_OFFICE_PROF_96_2003_6#1   
 KP_OFFICE_PROF_96_2003_7#1   
 KP_OFFICE_PROF_96_2003_7#4   
 KP_OSP_BROWSER_8_1#1   
 KP_OSP_BROWSER_9_0#1   
 KP_OSP_BROWSER_9_0#2   
 KP_SEC_INSTS_32_5_75#14   
 KP_SEC_INSTS_32_5_75#3   
 KP_SEC_INSTS_32_5_75#4   
 KP_SEC_INSTS_32_5_75#5   
 KP_SEC_INSTS_32_5_75#7   
 KP_SEC_INSTS_5_01#22   
 KP_SEC_INSTS_5_01#23   
 KP_SEC_INSTS_5_01#24   
 KP_SEC_INSTS_5_01#27   
 KP_SMSCLIENT2K3_2.5.3#1   
 KP_SSO_WN_PWAGENT_4_6#5   
 KP_SSO_WN_PWAGENT_4_6#5   
 KP_W2K3_32_INST_5_21#4   
 KP_W2K3_32_INST_5_70#1   
 KP_W2K3_TS_FP_32_5_80_1#1   
 KP_W2K3_TS_FP_32_5_80_1#1   
 KP_W2K3_TS_KONF_5_50_1#1   
 KP_W2K3_TS_KONF_5_50_1#1   
 KP_W2K3_TS_SAW_5_50#1   
 LONOTES_TOOLS_32_2_0   
 LONOTESREQ_6_5_5   
 LONOTESREQ_8_0_2   
 LORA_1_01   
 MCLIGHT_4_0   
 MERLIN_1_0   
 MQSERIES_6_0_2_6   
 MS_NETFRAMEWORK_3_5_2   
 MS_NETFRAMEWORK_3_5_2   
 MS_NETFRAMEWORK_96_3_5_4_1   
 MS_NETFRAMEWORK_96_3_5_5   
 MS_NETFRAMEWORK_96_3_5_5#3   
 MULTIACCESS_2_01   
 NOTESSTART_1_0   
 NOTESSTART_8_0_2   
 OFFICE_PROF_2003_2   
 OFFICE_PROF_2003_3   
 OFFICE_PROF_32_2003_4   
 OFFICE_PROF_32_2003_4   
 OFFICE_PROF_96_2003_6   
 OFFICE_PROF_96_2003_7   
 ONDEMAND_CLIENT_32_8_5_0_4   
 ONDEMAND_CLIENT_8_4_1_1   
 ONDEMAND_CLIENT_8_4_1_1   
 OPENOFFICE_ORG_96_3_3_0_C   
 ORACLECLIENT_10_2_0_3_C   
 ORACLECLIENT_10_2_0_3_C   
 OSP_BROWSER_8_1   
 OSP_BROWSER_9_0   
 OSP_BROWSER_96_11_0_1   
 OSP_BROWSER_96_11_1   
 PCBAT_2009_2   
 PERSIS_1_0   
 PMS_2_8_3   
 PMS_2_8_3#3   
 PMS_32_2_9   
 PMS_32_2_9_2   
 PSELEMENTS_1_0   
 PTWE_4_01   
 PTWE_4_3   
 PTWE_4_3   
 PTWE_4_3   
 PTWE_FIX_2_0   
 QSR_6_0   
 QUADRIGA_6_5   
 S-SYSINSTALL_5_60   
 S-SYSINSTALL_5_70   
 S-SYSINSTALL_96_11_1   
 S-SYSINSTALL_96_5_75   
 S-SYSINSTALL_96_9_2_1   
 SAFENET_1_0   
 SAW_DRUCKER_1_0   
 SCCMCLIENT_96_11_1   
 SDWH_CLIENT_4_1   
 SDWH_PROZESSMGR_4_6_1   
 SEC_INSTS_32_5_75   
 SEC_INSTS_32_5_75   
 SEC_INSTS_32_5_75   
 SEC_INSTS_5_01   
 SMSCLIENT2K3_2_5_3   
 SMSCLIENT2K3_96_2_6_4   
 SNMP-KONFIG_1_0   
 SPK_LOGON_1_1   
 SPK_LOGON_9_1   
 SPK5250_1_0   
 SSO_FIX_1_0   
 SSO_WN_PLUGIN_4_6_2   
 SSO_WN_PWADMIN_4_6_1   
 SSO_WN_PWADMIN_4_6_2   
 SSO_WN_PWAGENT_4_6   
 SSO_WN_PWAGENT_4_6_2   
 TOPAS_1_0   
 VISC_REDISTRIB_2005   
 VISC_REDISTRIB_32_11_1   
 VWD_2_6   
 W2K3_32_INST_32_11_1   
 W2K3_32_INST_32_5_80   
 W2K3_32_INST_32_9_2   
 W2K3_32_INST_5_21   
 W2K3_32_INST_5_70   
 W2K3_32_KONF_32_11_1   
 W2K3_32_KONF_32_5_80   
 W2K3_32_KONF_32_9_2   
 W2K3_32_KONF_5_31   
 W2K3_TS_AMC_5_50   
 W2K3_TS_FP_32_11_0_2   
 W2K3_TS_FP_32_5_80_1   
 W2K3_TS_FP_5_70   
 W2K3_TS_INST_5_50   
 W2K3_TS_KONF_5_50_1   
 W2K3_TS_SAW_5_50   
 WARTUNGSTASK_1_0   
 XML-SERVICE_1_0   
 ZEUSS_1_0   

Update txt

1Voraus_BS_1.0
AcroRead_32_9.3.2
AcroRead_32_9.5
AcroRead_LE_96_9.5
AcroRead_LE_96_9.5.1
AD_DC_Fix_5.11
AD_Fix_dezAD_5.40
AD_Fix_dezAD_5.50
AD_Fix_dezAD_5.60
ADR_DezAD_32_11.0
ADR_DezAD_9.00.1
ADR_DezAD_96_11.1
ADR_DezAD_96_12.0
ADR_DezAD_BioSmart_96_11.1
ADR_DezAD_BioSmart_96_12.0
Apache_2.0.54
APBI_KSBRechCl_3.0
APBI_SBSRV_0200
App_V_Client_4.6
App_V_ClientVor_4.6
BCM_TOOL_32_10.0.1
BCM_TOOL_32_8.0.1.7
BCM_TOOL_32_9.1.1
BGS_Agent_7.4.10
BitLocker_W7_64_9.2
BitLockerVor_W7_64_9.2
Boot_OSP_Region_5.41.2
BVSN_Voice_Snap_5.0.2.1
CDImage_WinPE_5.41
CDImage_WinPE_5.62.1
CITRIX_Mig2k_2k8_32_9.2
CITRIX_WebInter_32_12.0
Client_Mig_1.1
ColdFusion_MX7.0.2
CSAudit_Konfig_96_11.0.1
DAW_4.11
DAW_SETACL_7.0
DAW_SetACL_DFS_8.1
DAWSql_1.0
DAWSQL_6.1
DAWSql_dezAD_7.1
DAWSql_SYSInst_8.1
DAWSql_Webkat_1.0
DAWSql_Webkat_32_1.1
DB2_Client_96_9.5.4.9.1
DB2_Client_Konf_32_9.5.6.11.0
DC_Fix_dezAD_5.41
DC_Fix_dezAD_5.60
DevLock2_32_11.0.1
DevLock7_64_11.1
DevLock7_64_12.0
DevLock7_64_12.1
DFS_AdmPack_5.30
DFS_AdmPack_5.41
DMS_Client_6.1
DMS_Client_96_11.1
DMS_Client_Vali_1.0
DMS_PenPad_sign_32_2.0.1
DMS_PenPad_sign_32_2.0.2
DMS_PenPad_sign_32_3.0.1
DMS_PenPad_sign_32_4.0
DMS_PenPad_sign_32_5.0
DMS_PenPad_Soft_32_2.0
DMS_PenPad_Soft_32_3.0.1
DMS_PenPad_Soft_32_4.0
DMS_PenPad_Soft_32_5.0
Docuprinter_32_11.1
DRUCK_DRV_Fix_1.0
DRUCKTR_WIN_OSP_32_5.08
DRUCKTR_WIN_OSP_32_5.09
DRUCKTR_WIN_OSP_64_11.1
DRUCKTR_WIN_OSP_64_9.2
E_FORM_2.10
E_FORM_SERVER_2.10
Evidenz_2.05.1.1
Evidenz_32_2.05.2
Extra_8.02
FSC_SRVViewAgt_3.60.20
FSC_SRVViewAgt_4.30.13
FWH_GremienReporting_32_11.1.5
FWH_GremienReporting_32_11.1.6
FWH_GremienReporting_32_12.0.1
GPO_dezAD_5.31
GPO_dezAD_5.40
GPO_dezAD_5.41
GPO_dezAD_5.50.1
GPO_dezAD_5.60.2
HP_InsMgm_Agent_7.80
IBM_Director_5.20.1
ICA_Client_32_11.0.3
ICA_Client_64_12.0.1
ICA_Client_96_12.0.3
ICM_Basis_1.0.1
ICM_HWE_1.0
ICM_HWE_96_3.1
ICM_Konfig_1.0.1
iDEAL2_32_3862
IDV_Office_TS_32_11.1
IDV_Report_32_11.0
IDV_Report_32_11.1.6
IDV_Report_SAS_5.0
IE_DAW_Param_1.0.1
IE_DAW_Param_32_1.0.4
IntExpl_32_8.0.2
IntExpl_Upd_32_8.0.2
IntExpl_W7_64_8.0.1
IntExpl_W7_64_8.0.2
ISP_32_11.0
ISP_8.1
ISP_CCPulse_7.0
ISP_CCPulse_7.5.1
ISP_HI_Designer_8.3.1
ITBetrieb_32_10.0.1
ITBetrieb_32_9.1.1
ITBetrieb_8.1.1
JRE_64_9.2
JRE_96_11.2
JRE_96_11.3
JRE_96_12.0
JRE_VOR_96_11.2
JRE_VOR_96_11.3
JRE_VOR_96_12.0
Kasse_Biom_TSE_CLT_32_11.0
Kasse_Client_32_11.1
Kasse_Client_32_12.0
Kasse_Device_32_11.0.1
Kasse_Device_8.1
Kasse_Device_8.1.1
Kasse_Device_8.1.2
Kasse_ica_VC_8.1
Kasse_LDA_7.1
Kasse_OfflC_TC_32_11.0
Kasse_OfflC_TC_8.0
Kasse_OfflC_TC_96_12.0
Kasse_paCLT_8.0
Kasse_paTSE_32_11.1
Kasse_ProAKT_3.0.36
Kasse_Trace_32_11.0.1
Kasse_TSE_32_11.1
Krebis_SFDK_32_10.1.2
Krebis_SFDK_32_10.2
Krebis_SFDK_32_10.3.1
Krebis_SFDK_32_11.1.1
Krebis_SFDK_32_12.0.1
LoNotes_DWA_96_8.5.2.3
LoNotes_Tools_32_2.0
LoNotes_Tools_32_4.0.1
LoNotes_Tools1
LoNotesReq_8.0.2
LoNotesReq_Admin_96_8.5.2.3
LoNotesReq_Shared_32_8.5.2.3
McAfee_Deinst_96_2.0
MQSeries_6.0.2.6
MQSeries_Val_6.0.7.5
MS_IIS_96_6.0.2
MS_JSharp_RT_2.0
MS_Netframework_96_3.5.5
MS_NetFramework_Clt_96_4.0
MS_NetFramework_full_96_4.0.1
MS_Off_SIKfgMgr_4.0
Office_Prof_2003.3
Office_Prof_96_2003.7
Office_Std_32_2003.3
OnDemand_Client_32_8.5.0.4
OnDemand_Client_8.4.1.1
OpenOffice_org_96_3.3.0
OracleCl_Konf_32_11.0.0.1
OracleClient_32_11.2.0.1
OracleServer_32_11.2.0.2
OracleServer_32_11.2.0.3
OSP_BROWSER_96_11.0.1
OSP_BROWSER_96_11.1
OSP_Brws_ERE_AO_1.0.2
OSPP_Konnektor_ELP_32_12.0
OSPPortal_Indiv_1.0
OSPZeitw_Startm_32_4.6.3
OSPZeitw_Startm_32_4.6.4
OSPZeitw_Startm_4.6
Paris_Orgmgr_32_6.1
PARIS_Orgmgr_4.1
PComm_32_5.95.3
PComm_5.92.1
PComm_96_6.01
PDF_Druckcontainer_96_11.0
PDFDRV_1.1
PMS_32_2.9.2
ProfilVorlage_32_11.0
ProfilVorlage_32_11.1
ProfilVorlage_32_12.0.1
ProfilVorlage_32_9.2.1
Reminst_AdmPack_96_11.1
Reminst_AdmPack_96_12.0
ReminstBasis_5.20
ReminstDRV32_5.60
ReminstKonf_32_11.0
ReminstW2K3EE32_5.21
ReminstW2K3ST32_5.21
ReminstXPPROF32_5.50
RSAT_W7_64_11.1
RSAT_W7_64_9.2
S_Credit_32_11.1
S_Credit_32_9.2
S_Credit_32_9.3
S_Credit_32_9.4
SAP_GUI_32_7.20
SCCMAdmPack_96_11.1
SCCMAdmPack_96_12.0.1
SCCMAdmPack_96_9.2
SCCMClient_96_11.1
SCCMDeploy_PLT_96_11.1.1
SCCMDeploy_PLT_96_12.0
SCCMDeploy_TS_96_5.80
SCCMScripts_96_12.0
SCCMSrv_96_4.2
SDWH_ProzessMGR_4.6.1
SEC_INSTC_32_5.75
SEC_INSTS_32_5.75
SEC_SGE_PBA_32_11.0.1
SEC_SGE_VOR_32_11.0.1
SEVA_32_9.1
SEVA_64_9.2
SEVA_Firewall_10.0
SEVA_Firewall_11.0
SEVA_Vorb_32_9.1
SMS2003_AdmPack_4.02
SMSClient2K3_96_2.6.4
SMSSRV2K3_2.50
SQL2000SRV_SP_5.20
SQL2000SRV_ST_4.02
SQL2K_AdmPack_4.03
SQL2K_SrvPack_5.70
SQL2K8_AdmPack_5.70
SQL2K8_AdmPack_64_12.0
SQL2K8Client_96_11.0
SQL2K8SRV_SP_96_11.0
SQL2K8SRV_SP_96_12.0
SQL2K8SRV_ST_32_5.70.1
SQL2K8SRV_ST_5.70
SRC_32_11.0.2
SRC_32_12.0
SSO_B_Konfig_7.0
SSO_B_MstAgent_7.0.1
SSO_B_MstServer_7.0
SSO_WN_Fileshar_4.6
SSO_WN_LIZSRV_4.5
S-SYSInstall_96_11.1
S-SYSInstall_96_12.0
S-SYSInstall_96_9.2.1
SYS_MSI_Ausw_1.2
SYS_Watch_Agent_3.1
SYS_Watch_Agent_4.0.1
SYS40_AdmPack_4.02
SYSBackup_5.3.4.12
SYSBackup_5.5
SYSBackup_Srv_5.5
SYSDBA_BT_32_7.4.00
SYSDBA_BT_6.1
SYSDBA_BT_TSM_3.1.00
SYSDBA_BT_TSM_3.1.00.3
SYSDBA_BT_TSM_32_4.0.11
SYSInstall_DB_96_12.0
TC_AdmPack_96_11.1.3
Travic_Link_2.3.19
Travic_Link_96_3.3.10
Travic_Link_96_3.3.8
Travic_Link_96_3.3.9
TS_SOUND_32_11.2
TSMClient_32_5.5.3.1
VisC_Redistrib_32_11.1
VMWare_ESXi_32_4.0.2
VMWare_ESXi_4.0.1
VMware_Tools_96_4.0.2
VMware_Tools_96_4.1
VMware_Tools_96_4.1.0.1
VMware_Tools_96_5.0
VMWare_VC_Adm_96_11.1
VMWare_VC_SRV_4.0.1
VSP_Voice_Snap_32_5.1.2
W_DekaNet_2.0
W2K3_32_Inst_32_11.1
W2K3_32_Inst_32_12.0
W2K3_32_Konf_32_11.1
W2K3_TS_AMC_5.50
W2K3_TS_FP_32_11.0.2
W2K3_TS_INDIVI_5.00
W2K3_TS_INDIVI_5.50
W2K3_TS_Inst_5.00
W2K3_TS_INST_5.50
W2K3_TS_Konf_5.50.1
W2K3_TS_Liz_5.70
W2K3_TS_SAW_5.40.1
W2K3_TS_SAW_5.50
W7_Drucker_Konfig_64_11.1
W7_Inst_64_11.1
W7_Inst_64_12.0
W7_Inst_64_9.2
W7_Konf_64_11.1
W7_Konf_64_9.2
W7_Mobil_64_11.1
W7_Mobil_64_9.2
W7_ServicePack_64_1.0
WinActivateClt_64_9.2
WinZip_10.0.1
WinZip_96_12.1
Wise_Installer_96_11.1
W-SYSInstall_96_11.1
W-SYSInstall_96_12.0
W-SYSInstall_96_9.2.1
XP_DelDualBoot_32_5.80
XPProf32_Inst_32_11.1
XPProf32_Inst_32_12.0
XPProf32_Konf_32_11.1
DB2_Client_Inst_32_9.5.6.11.0
HR_Spk_2.5
ICA_Client_32_11.0.2
IDV_OFFICE_6.1
OnDemand_Client_32_8.4.1.5
PARIS_SAP_DOKU_5.0
SEC_SGE_32_11.0.1
SMS_PAKETEBAU_4.02
SRC_32_9.0.1.1
W2K3_TS_Konf_5.00
K_22_MS_Netframework_2.0
K_22_SYS_Watch_Agent_3.0
Kopie von BVSN_Voice_Snap_5.0.2.1
KP_AcroRead_32_9.3.2#9
KP_AcroRead_32_9.5#1
KP_AcroRead_32_9.5#3
KP_AcroRead_32_9.5#4
KP_AcroRead_LE_96_9.5#7
KP_AcroRead_LE_96_9.5.1#1
KP_AcroRead_LE_96_9.5.1#3
KP_AD_DC_Fix_5.11#1
KP_AD_DC_Fix_5.11#3
KP_AD_DC_Fix_5.11#4
KP_ADR_DezAD_9.00.1#1
KP_APBI_KSBRechCl_3.0#05
KP_BCM_Tool_7.0.1#6
KP_ColdFusion_MX7.0.2#1
KP_DAWSql_1.0#2
KP_DMS_Client_8.0#2
KP_DMS_Client_96_11.1#1
KP_DMS_PenPad_sign_32_2.0.1#1
KP_DMS_PenPad_Soft_32_2.0#1
KP_E_Form_2.10#1
KP_E_FORM_2.10#2
KP_E_FORM_2.10#3
KP_E_FORM_2.10#4
KP_E_FORM_2.10#5
KP_E_FORM_SERVER_2.10#1
KP_E_FORM_SERVER_2.10#2
KP_Evidenz_32_2.05.2#1
KP_GPO_dezAD_5.60.2#1
KP_IBM_Director_5.20.1#1
KP_ICA_Client_32_11.0.3#2
KP_ICA_Client_32_11.0.3#3
KP_ICA_Client_64_12.0#1
KP_ICM_Basis_1.0.1#1
KP_ICM_Basis_1.0.1#2
KP_ICM_Basis_1.0.1#3
KP_ICM_Basis_1.0.1#4
KP_ICM_Konfig_1.0.1#1
KP_ICM_Konfig_1.0.1#2
KP_ICM_Konfig_1.0.1#3
KP_ICM_Konfig_1.0.1#4
KP_IntExpl_Upd_32_8.0.2#10
KP_IntExpl_Upd_32_8.0.2#2
KP_IntExpl_Upd_32_8.0.2#5
KP_IntExpl_Upd_32_8.0.2#6
KP_IntExpl_Upd_32_8.0.2#7
KP_IntExpl_Upd_32_8.0.2#8
KP_IntExpl_Upd_8.0.1#6
KP_IntExpl_Upd_8.0.1#8
KP_IntExpl_W7_64_8.0.1#6
KP_IntExpl_W7_64_8.0.1#7
KP_IntExpl_W7_64_8.0.1#8
KP_IntExpl_W7_64_8.0.1#9
KP_IntExpl_W7_64_8.0.2#9
KP_ISP_8.1#1
KP_ITBetrieb_4.2.1#2
KP_JRE_96_11.0#2
KP_Kasse_TSE_32_9.1#1
KP_LoNotesReq_8.0.2#1
KP_LoNotesReq_8.0.2#2
KP_LoNotesReq_8.0.2#3
KP_LoNotesReq_8.0.2#4
KP_MS_NetFramework_96_3.5.5#1
KP_MS_NetFramework_96_3.5.5#2
KP_MS_NetFramework_96_3.5.5#3
KP_MS_NetFramework_Clt_96_4.0#1
KP_MS_NetFramework_Clt_96_4.0#2
KP_MS_NetFramework_Clt_96_4.0#3
KP_Office_Prof_96_2003.6#1
KP_Office_Prof_96_2003.7#1
KP_Office_Prof_96_2003.7#2
KP_Office_Prof_96_2003.7#3
KP_Office_Prof_96_2003.7#4
KP_Office_Std_32_2003.3#2
KP_Office_Std_32_2003.3#3
KP_Office_Std_32_2003.3#4
KP_Office_Std_32_2003.3#5
KP_OnDemand_Client_32_8.4.1.5#1
KP_PComm_5.92.1#2
KP_SAP_GUI_32_7.20#8
KP_SCCMSrv_96_4.2#2
KP_SCCMSrv_96_4.2#4
KP_SCCMSrv_96_4.2#5
KP_SEC_INSTC_32_5.75#13
KP_SEC_INSTC_32_5.75#14
KP_SEC_INSTC_32_5.75#15
KP_SEC_INSTC_32_5.75#16
KP_SEC_INSTS_32_5.75#13
KP_SEC_INSTS_32_5.75#14
KP_SEC_INSTS_32_5.75#15
KP_SEC_INSTS_32_5.75#16
KP_SMS_PAKETEBAU_4.02#12
KP_SMS2003_AdmPack_4.02#9
KP_SMSClient2K3_2.5.3#1
KP_SMSSRV2K3_2.50#07
KP_SQL2000SRV_SP_5.20#2
KP_SQL2k_AdmPack_4.03#1
KP_SSO_B_MstAgent_96_7.0.4#1
KP_SSO_WN_PWAgent_4.6#5
KP_VMWare_VC_SRV_4.0.1#1
KP_W2K3_32_Inst_5.70#1
KP_W2K3_TS_FP_32_11.0.2#4
KP_W2K3_TS_INDIVI_5.00#2
KP_W2K3_TS_INST_5.00#5
KP_W2K3_TS_KONF_5.00#7
Member: Biber
Biber Aug 21, 2012 updated at 16:58:45 (UTC)
Goto Top
Moin Ossistreichler,

Zitat von @Ozzestriker:
Hi Bastla,

ich wusste das ich hier im richtigen Forum bin und du der Richtige für dieses Problem.
Ich sach ma' so: bastla ist nach meinem Eindruck einer der geduldigsten und leidensfähigsten Entwicklungshelfer dieser Galaxie.

Wenn überhaupt jemand die Aufgabe umsetzt ohne laut zu werden, dann er.

Ich dagegen hätte schon mehrfach geschrieen und Flüche in Klingonisch ausgestossen.

Lass mich vorsichtig und leise nachfragen:
WTF erzwingt diese merkwürdige Rahmenbedingung, das zwei Listen miteinander verglichen werden sollen, die nur um drei Ecken herum miteinander verwandt sind?

Warum nicht erstmal eine Einigung auf EIN Format für BEIDE Textdateien??

Grüße
Biber
Member: bastla
bastla Aug 21, 2012 updated at 21:16:26 (UTC)
Goto Top
@Biber
Flüche in Klingonisch
... hätte ich vielleicht auch schon erwogen (aber geschrieben machen die nicht ganz so viel her face-wink)

@Ozzestriker
Wie schon oben angesprochen: So macht das nicht wirklich Sinn - wenn es keine Struktur (und das noch nicht einmal innerhalb einer der Dateien) gibt, die ein sicheres Aufteilen in Name und Version ermöglicht, und dann auch noch nicht mal die Schreibweise der Versionsnummern zwischen den Dateien vergleichbar ist, wird das nix ...

Grüße
bastla
Member: Ozzestriker
Ozzestriker Aug 22, 2012 at 06:11:06 (UTC)
Goto Top
Hi,

ok ok ich gibs ja zu das klingt alles plausibel. Aber was soll ich machen ich hab mir die Txt's nicht ausgesucht sind Vorgaben.

Jetzt mal aber eine andere Frage wäre es vielleicht schneller realisierbar wenn ich mir eine Liste erstelle mit den Updates die ich benötige (mir ist ja bekannt welche Pakete ich installiert haben möchte) und dann einfach vergleichen ob die die ich benötige in der Liste sind.

Wäre das realisierbar. Programm müsste ja eigentlich nur Zeile für Zeile kontrollieren ob es die Zeilen aus meiner Update txt findet oder ?

Aber wie ich das umsetze ? Kein Plan!
Member: Biber
Biber Aug 22, 2012 updated at 06:38:52 (UTC)
Goto Top
Moin Ostseestreiker,

Zitat von @Ozzestriker:
Hi,

ok ok ich gibs ja zu das klingt alles plausibel.
Aber was soll ich machen ich hab mir die Txt's nicht ausgesucht sind Vorgaben.

Ja sorry, aber du hast deine Frage doch im Bereich "Entwicklung" gepostet.
Und bei Aufgabenstellungen in diesem Bereich gehört auch dazu, gegebenfalls die "Vorgaben" anzupassen.

Ich habe das schon mehrfach an anderen Stellen geschrieben, wie das Herangehen an solche "Projekte" ist.
- Definieren, was das Ziel ist
- Ermitteln, was ich dafür brauche
- Ermitteln, was ich davon schon habe
- Eskalieren, wenn mir mir etwas Entscheidendes fehlt

--> Wenn das Ziel mit den gegebenen Rahmenbedingungen nicht erreichbar ist, dann brauche ich nicht anzufangen.

Wenn du deinem Cheffe gegenüber begründen kannst, warum eine automatisierte Verarbeitung unter diesen Umständen nicht sinnvoll möglich ist, dann ist auch das durchaus ein Grund dafür, warum er dich für diesen Job eingestellt hat.

Grüße
Biber
Member: Ozzestriker
Ozzestriker Aug 22, 2012 at 10:01:17 (UTC)
Goto Top
Hi,

ja ist mir schon klar. Deswegen habe ich mir ja überlegt das ich es anders lösen möchte.

Ich bekomme ja gesagt was ich beim Release für Pakete installieren muss. Diese Pakete schreib ich mir in eine txt.
Auf meinen Rechnern die geupdatet werden müssen besteht sozusagen ein Installlog.txt. Wenn ich diese beiden vergleiche sollte am Ende als Ergebnis dabei herauskommen, dass xyz Pakete noch nicht installiert sind (da er Sie in der Installlog.txt einfach noch nicht findet beim Vergleich).

Ich hoffe es ist verständlich.
Member: bastla
bastla Aug 22, 2012 at 11:44:15 (UTC)
Goto Top
Hallo Ozzestriker!

Verständlich ist es, aber mit dem aktuellen (unterschiedlichen) Format der beiden Dateien so nicht umsetzbar - denn wenn es nur darum ginge, alle Einträge Deiner Liste zu finden, die nicht in der "Installlog.txt" stehen, wären wir wieder bei der einen Zeile ganz oben ...

Da Du ja aber auch Updates auf die nächsthöhere Versionsnummer berücksichtigen willst, steht und fällt das mit der Zerlegbarkeit bzw Vergleichbarkeit der Einträge in den beiden Dateien (eine übrigens nicht ganz neue Erkenntnis face-wink) ...

Grüße
bastla
Member: pieh-ejdsch
pieh-ejdsch Aug 22, 2012 updated at 13:09:18 (UTC)
Goto Top
moin,

wenn die Versionsnummern schon bei dem Unterschiedlich aufgebauten Formatierungen innerhalb eines Programmes sind, wird es mit der Sortierung nicht einfach werden.
W-SYSInstall_96_11.1
W-SYSInstall_96_12.0
W-SYSInstall_96_9.2.1
da scheitert auch ein
if 12.0 gtr 9.2.1 echo 12.0 ist neuer
 ... oder
if 12.0 gtr 9.2 echo 12.0 ist neuer
Eine Sortierung der Dateien nach Datum ist da sinnvoller, wenn alle Versionen Benötigt werden. Da kann dann auch die Liste Zeile für Zeile durchsucht werden.

Bei Gleichmässiger Formatierung (12.0.1 11.1.0 09.2.1) wäre die Sortierung der Updates wenigstens nach Software auch richtig.

Für was werden denn all diese "Vorher" Updates benötigt?
Im Grunde reicht es doch das aktuellste Update je Programm in dem Log zu haben.

Fürs checken ob ein Update schon Durchgeführt worden ist könnte es helfen.
Da die Punkte in der Update.txt beim Findstr als ein beliebiges Zeichen gefunden werden, könnte die Positivliste so ausgelesen werden:
@echo off
setlocal enabledelayedexpansion
set "UList=Updates.txt"  
set "RList=Rechner.txt"  

for /f "usebackqtokens=1-15delims=_" %%a in ("%UList%") do (  
  set "Program="  
  set "Version="  
  for %%A in (%%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%k %%l %%m %%n) do (
    if defined Version set "Program=!Program!!Version!_"  
    set "Version=%%A"  
  )
   rem Ausgabe von möglichen Updates ...
  findstr /i "!Program!" "%RList%" |findstr /iv "!Version!" >nul &&echo !Program!!Version!  
)
pause

[Edit]Zeile Umgetauscht...und etwas verbessert[/Edit]
[Edit2] findstr angepasst[/Edit2]
Gruß Phil
Member: pieh-ejdsch
pieh-ejdsch Aug 22, 2012 at 13:11:37 (UTC)
Goto Top
die Sache mit den Versionsnummern kannste nun versuchen selbst hinzubiegen.

so bekommste schonmal paar mögliche Updates angezeigt.

Gruß Phil