VBS oder PoShe Code um in einem Ordner nach einem vorgegebenen Namen plus ".jpg" zu suchen
Hallo liebe User,
ich bin was VBS/PoShe angeht kompletter Neueinsteiger,
hab aber eine für mich sehr umfangreiche Aufgabe.
Ich bekomme von einer Anlage einen integer Wert (vorzeichenloser 16bit Wert) welcher z.B. "16" sein könnte.
Ich möchte dann in einem bestimmten immer gleichbleibenden Ordner nach dem Bild "16.jpg" suchen. Wenn der integer Wert aber 55 sein sollte, soll man Bild "55.jpg" gesucht werden.
Falls dieses Bild vorhanden ist möchte ich das Bild auch gerne aufrufen.
Falls es nicht vorhanden ist, soll sich ein anderes Bild öffnen, in dem steht, dass zu dieser Nummer keine Datei gefunden werden konnte.
Eigentlich habe ich so gut wie Garnichts in meinem Code stehen.
Hat da jemand einen Anstoß wie das möglich wäre umzusetzen?
Vorallem die Definition für den Wert vom integer + .jpg lässt mich verzweifeln.
ich bin was VBS/PoShe angeht kompletter Neueinsteiger,
hab aber eine für mich sehr umfangreiche Aufgabe.
Ich bekomme von einer Anlage einen integer Wert (vorzeichenloser 16bit Wert) welcher z.B. "16" sein könnte.
Ich möchte dann in einem bestimmten immer gleichbleibenden Ordner nach dem Bild "16.jpg" suchen. Wenn der integer Wert aber 55 sein sollte, soll man Bild "55.jpg" gesucht werden.
Falls dieses Bild vorhanden ist möchte ich das Bild auch gerne aufrufen.
Falls es nicht vorhanden ist, soll sich ein anderes Bild öffnen, in dem steht, dass zu dieser Nummer keine Datei gefunden werden konnte.
Eigentlich habe ich so gut wie Garnichts in meinem Code stehen.
Hat da jemand einen Anstoß wie das möglich wäre umzusetzen?
Vorallem die Definition für den Wert vom integer + .jpg lässt mich verzweifeln.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 601572
Url: https://administrator.de/contentid/601572
Ausgedruckt am: 23.11.2024 um 11:11 Uhr
7 Kommentare
Neuester Kommentar
Moin.
Z.B. als Powershell
Aufrufen dann mit dem Pfad und dem Integer-Wert so in der PS-Konsole
Gruß eagle
Z.B. als Powershell
param(
[parameter(mandatory=$true)][string]$path,
[parameter(mandatory=$true)][int]$integer
)
# hide powershell console
$showWindow = Add-Type –memberDefinition '[DllImport("user32.dll")] public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);' -name "Win32ShowWindow" -namespace W –passThru
[void]$showWindow::ShowWindow((Get-Process –id $pid).MainWindowHandle, 0)
Add-Type -A System.Windows.Forms
# build path
$filepath = join-path $path "$integer.jpg"
# test if file exists
if(Test-Path $filepath){
# show image
start $filepath
}else{
# image not found, show messagebox
[System.Windows.Forms.MessageBox]::Show("Für die Nummer '$integer' existiert kein Bild im Ordner '$path' !",'Fehler',0,[System.Windows.Forms.MessageBoxIcon]::Exclamation)
}
Aufrufen dann mit dem Pfad und dem Integer-Wert so in der PS-Konsole
.\script.ps1 -path "D:\Ordner" -integer 16
Auch kein Problem
Aufruf dann mittels erstem Parameter als Ordner und zweiten der Nummer
Dim fso,shell,filepath
If WScript.Arguments.Count <> 2 then
MsgBox "Falsche Parameteranzahl! Bitte den Pfad als ersten und die Nummer als zweiten Parameter übergeben.", vbExclamation
wscript.quit
End if
Set fso = CreateObject("Scripting.FileSystemobject")
Set shell = CreateObject("Wscript.Shell")
filepath = wscript.arguments(0) & "\" & wscript.arguments(1) & ".jpg"
if fso.FileExists(filepath) then
shell.Run filepath,1,False
Else
MsgBox "Datei mit dieser Nummer kann nicht gefunden werden!",vbExclamation
End if
Aufruf dann mittels erstem Parameter als Ordner und zweiten der Nummer
Script.vbs "d:\Ordner" 16
Ja so ganz ohne jegliches Error-Handling kann ich dir auch mit der PS "kürzer" machen . Kürzer ist nicht immer besser, und so fällt das bereits mit Leerzeichen im Pfad auf die Fresse.
Der Pfad wird ja schon mit " übergeben und die Bilddateien sind ja nur Zahlen als Namen, also ohne Leerzeichen. Wird keine Zahl übergeben, also fehlt der Parameter liefert das "if exist" als falsch. Was willst du da noch errorhandeln? Aber sogar um ganz sicher zu gehen und Pfade mit Leerzeichen nochmal explizit zu unterstützen wäre es kein wirklich längerer code:
@if exist "%~1\%~2.jpg" ("%~1\%~2.jpg") else (NichtDa.jpg)