Forum: Offtopic Windows Verknüpfung Wildcard


von Micha B. (michaelmitch_m)


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?

von Daniel A. (daniel-a)


Lesenswert?

Unter linux würde man einfach folgendes Kommando in ein shell script 
oder eine .desktop verknüpfung schreiben:
1
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.

von Simon L. (dfgh)


Lesenswert?

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

Aber vielleicht geht es auch noch einfacher?

von Timm T. (Gast)


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.

von Daniel A. (daniel-a)


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:
1
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:
1
#!/bin/bash
2
3
if [ "$#" -ne 1 ]
4
then
5
  echo "Usage: $0 pattern" >&2
6
  exit 1
7
fi
8
9
file="$1"
10
11
result="$(
12
  echo "$file" | tr '*' '\n' | {
13
    read prefix
14
    read suffix
15
    echo -n "$prefix"
16
    for f in $file
17
      do echo "${f:$(expr $(wc -c<<<"$prefix") - 1):-$(expr $(wc -c<<<"$suffix") - 1)}"
18
    done | sort -rh | head -n 1 | head -c -1
19
    echo -n "$suffix"
20
  }
21
)"
22
23
if [ ! -f "$result" ] && [ "$result" == "$file" ]
24
then
25
  echo "No match" >&2
26
  exit 2
27
fi
28
29
xdg-open "$result"

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

Lang lebe Bash!

PS: Andere könnten das Script sicher einfacher schreiben

: Bearbeitet durch User
von Timm T. (Gast)


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?

von Daniel A. (daniel-a)


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.

von Micha B. (michaelmitch_m)


Lesenswert?

Hi, sorry.. aber es handelt sich um Windows:)

von Timm T. (Gast)


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? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.