mikrocontroller.net

Forum: Offtopic Windows Verknüpfung Wildcard


Autor: Michael Mitch M. (michaelmitch_m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen.
Ich habe in einem Ordner eine, sagen wir mal, "dokument_v1.pdf" liegen. 
Diese Datei wird aber regelmäßig durch ein anderes Programm ersetzt und 
auf "dokument_v2.pdf" umbenannt. Jetzt wollte ich mir auf meinem Desktop 
eine Verknüpfung auf auf z.B. dokument*.pdf machen oder ähnlich. geht 
das? Falls ja wie?

Autor: Daniel A. (daniel-a)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Unter linux würde man einfach folgendes Kommando in ein shell script 
oder eine .desktop verknüpfung schreiben:
xdg-open dokument_v*.pdf

Unter Windows müsste man wohl ein batch file erstellen, aber das ist 
viel komplizierter, und ich weiss nicht wie man das dort machen müsste.

Autor: Simon L. (dfgh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Batchdatei mit folgendem Inhalt im gleichen Ordner wie die Datei:
forfiles /m Datei*.txt /c "cmd /c notepad @path"

Aber vielleicht geht es auch noch einfacher?

Autor: Timm T. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mach eine Verknüpfung auf den Ordner, ist dann ein Doppelklick mehr.

Win weiß ja nicht, daß da nur eine Datei zu Öffnen ist.

Auch unter Linux geht das schief, wenn die alte Datei nicht gelöscht 
wird. Da gehen dann 100 PDFs auf.

Autor: Daniel A. (daniel-a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timm T. schrieb:
> Auch unter Linux geht das schief, wenn die alte Datei nicht gelöscht
> wird. Da gehen dann 100 PDFs auf.

Wäre auch einfach zu lösen, zuletzt gespeicherte/geänderte Datei öffnen:
xdg-open "$(ls -t1 dokument_v*.pdf | head -1)"

Wenn man es nach dem wildcard teil sortiert das höchstwertige nach 
"menschenleseweise" haben will, und es nur 1 wildcard gibt, wirdes etwas 
komplizierter. Dann könnte man folgendes Script, das ich gerade 
geschrieben habe, nach /usr/local/bin/wkn-open speichern:
#!/bin/bash

if [ "$#" -ne 1 ]
then
  echo "Usage: $0 pattern" >&2
  exit 1
fi

file="$1"

result="$(
  echo "$file" | tr '*' '\n' | {
    read prefix
    read suffix
    echo -n "$prefix"
    for f in $file
      do echo "${f:$(expr $(wc -c<<<"$prefix") - 1):-$(expr $(wc -c<<<"$suffix") - 1)}"
    done | sort -rh | head -n 1 | head -c -1
    echo -n "$suffix"
  }
)"

if [ ! -f "$result" ] && [ "$result" == "$file" ]
then
  echo "No match" >&2
  exit 2
fi

xdg-open "$result"

Und schon könnte man nur die Datei mit der Grössten nummer 
folgendermasen öffnen:
wkn-open "dokument_v*.pdf"

Lang lebe Bash!

PS: Andere könnten das Script sicher einfacher schreiben

: Bearbeitet durch User
Autor: Timm T. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel A. schrieb:
> Lang lebe Bash!

Da angeblich W10 auch Linux-Befehle in der PowerShell ausführen kann, 
sollte das Script dann auch unter Windows laufen, oder?

Autor: Daniel A. (daniel-a)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Timm T. schrieb:
> Da angeblich W10 auch Linux-Befehle in der PowerShell ausführen kann,
> sollte das Script dann auch unter Windows laufen, oder?

Ich habe es nie ausprobiert, ich glaube man braucht die buggiere 
Entwicklerversion wo die Testupdates kommen, und muss bash in die 
Konsole eintippen damit das Fenster kommt das einem Anbietet bash aus 
dem Windows Store runterzuladen.

Das xdg-open müsste man aber durch einen MS Spezifischen befehl 
ersetzen.

Autor: Michael Mitch M. (michaelmitch_m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, sorry.. aber es handelt sich um Windows:)

Autor: Timm T. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael Mitch M. schrieb:
> Hi, sorry.. aber es handelt sich um Windows:)

Hi, sorry, aber wir reden von Windows: 
http://www.heise.de/newsticker/meldung/Hands-on-Das-neue-Linux-Subsystem-in-Windows-10-3163994.html

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail, Yahoo oder Facebook? Keine Anmeldung erforderlich!
Mit Google-Account einloggen | Mit Facebook-Account einloggen
Noch kein Account? Hier anmelden.