Startmenüelement einmal umbenennen 10

594
DirkDig

Ich habe einen Client (nennen wir es ABC), der ein Skript ausführt, um einige Dateien innerhalb des Windows 10-Startmenüs umzubenennen. Das Skript wird jedes Mal ausgeführt, wenn ABC geöffnet wird. Mein aktuelles PowerShell-Skript lautet:

$loc="C:\ProgramData\Microsoft\Windows\Start Menu\Programs\**Parent Folder**  Get-ChildItem $loc -Filter *.lnk -Recurse | Rename-Item -newName{$_.Directory.Name+' '+$_.Name} 

Dabei ist Parent Folder nur das Verzeichnis, in dem sich die LNK-Dateien befinden.

Das funktioniert gut und macht das, was ich will, wenn es zum ersten Mal ausgeführt wird. Das Problem ist jedoch, dass die Datei jedes Mal umbenannt wird, wenn ABC geöffnet wird und sich der Dateiname verdoppelt.

Ich muss das Skript weiterhin ausführen, da ABC alle paar Monate neuere Versionen hinzugefügt werden und die älteren Versionen ebenfalls beibehalten werden müssen.

Ich muss also überprüfen, ob die Datei bereits umbenannt wurde und ob sie ignoriert wurde. Wenn dies nicht der Fall ist, führen Sie das Powershell-Skript aus, um es umzubenennen.

Hoffen Sie, dass meine Frage klar ist, lassen Sie mich wissen, ob weitere Klarstellung erforderlich ist.

0
Deine Frage ist in der Tat verwirrend. Sie stellen eigentlich keine Frage. Sie beschreiben einfach ein Skript. Ramhound vor 6 Jahren 1
"Ich muss also überprüfen, ob die Datei bereits umbenannt wurde und ob sie ignoriert wurde. Wenn dies nicht der Fall ist, führen Sie das Powershell-Skript aus, um es umzubenennen." DirkDig vor 6 Jahren 0
Das ist eine Aussage, keine Frage. Wir sind auch kein Skriptschreibservice. Wir können Sie nur in die richtige Richtung weisen. Ihre Frage hat keine Formatierung. Das Überprüfen, ob eine Datei vorhanden ist, ist in PowerShell einfach genug. Worüber bist du verwirrt? Ramhound vor 6 Jahren 0
Wie überprüfe ich, ob eine Datei bereits in das gewünschte Format umbenannt wurde? Wenn es umbenannt wurde, machen Sie es nicht noch einmal. Wenn es nicht umbenannt wurde, benennen Sie es um. Ich denke, ich sollte das "Wie" an den Anfang der Aussage anfügen, anstatt davon auszugehen, dass es impliziert ist. DirkDig vor 6 Jahren 0
"Wie überprüfe ich, ob eine Datei bereits in dem Format umbenannt wurde, in dem ich es brauche?" Prüfen Sie einfach, ob die Datei existiert. Sie haben Ihre Frage immer noch nicht bearbeitet, um sie zu klären. Ramhound vor 6 Jahren 0
Wir sind kein Forum. Der Superuser stirbt auch nicht bei jeder Fantasie. Ich denke, ich sollte mich für meine Antwort auf Ihren ersten Kommentar entschuldigen. Ich war etwas verärgert. Sie würden nicht den Hinweis annehmen, dass Ihre Frage verwirrend war. Ich habe auch das Gefühl, dass die Datei existiert, eine gültige Lösung ist, aber Ihr Skript macht dies derzeit weder, noch erklären Sie, warum dies nicht möglich ist. Hoffentlich werden Sie diese Gelegenheit nutzen, um Ihre Frage zu klären, anstatt die andere Hälfte meines Gehirns zu beleidigen. Ramhound vor 6 Jahren 0
Das ist was ich verlange. Eine beste Lösung, um zu überprüfen, ob der Dateiname geändert wurde. Es gibt mehrere Versionen dieses Tools, von denen jede beibehalten werden muss. Wenn Version 3 herauskommt, werden Version 1 und 2 nicht gelöscht, da sie unter bestimmten Umständen verwendet werden. Alle paar Monate werden neue Versionen herauskommen. Der Mitarbeiter installiert keine Version, bis er diese Version benötigt. In Windows 7 bot das Startmenü eine Hierarchie, die dazu beitrug, die Tools nach Versionen zu unterscheiden, Fenster 10 jedoch nicht. DirkDig vor 6 Jahren 0
Daher muss ich diese Dateien umbenennen, indem die Version ihrem Namen vorangestellt wird, damit die Mitarbeiter sie unterscheiden können. Meine Powershell muss also den Namen des übergeordneten Ordners ermitteln, der die Version enthält, und diesen den Dateien voranstellen. Das Problem ist, dass beim Öffnen des Clients, der diese Tools ausführt, dieses Skript jedes Mal ausgeführt wird und das Tool dann mehrere Versionen vor sich hat. (dh V1.02.301 -> V1.02.301V1.02.301 -> etc) Und es ist nicht einmal garantiert, dass jede Version installiert ist. Ich muss das Skript jedes Mal ausführen, wenn sie den Client öffnen. DirkDig vor 6 Jahren 0
Ich bin ein Neuling im Skripting (Abschluss Mai) und weiß nicht, wie man dies am besten macht. Das ist die Hilfe, die ich verlange, Rat oder eine Methode für bewährte Methoden. Ich habe jetzt einige Fragen zu diesem Forum und zum Stapelüberlauf gestellt und es scheint, dass ich jedes Mal, wenn ich Beleidigungen bekomme, keine Hilfe bekomme. Dann werde ich sauer und antworte unhöflich, dann muss ich ein neues Konto erstellen. DirkDig vor 6 Jahren 0
Ich werde diese Tatsache noch einmal wiederholen, wir sind kein Forum, niemand hat Sie so beleidigt. Wenn Sie also wütend werden, kann dies daran liegen, dass Sie nicht verstehen, was die Community von einer Frage erwartet. Ramhound vor 6 Jahren 0
Alle Ereignisse .... [Eine bessere Methode, um zu überprüfen, ob in PowerShell ein Pfad vorhanden ist oder nicht] (https://stackoverflow.com/questions/31888580/a-better-way-to-check-if-a-path- Existiert-oder-nicht-in-Powershell) oder [Testpfad] (https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell.management/test-path?view=powershell-5.1 ) sollte helfen. Ich werde das Skript jedoch nicht für Sie schreiben. Als ich fragte: "Worüber sind Sie verwirrt?", Habe ich erwartet, dass Sie Ihre Frage bearbeiten und ein spezifisches Problem mit dem Ansatz angeben, ob bereits eine Datei, ein Ordner oder ein Pfad vorhanden ist. Das ist nicht passiert. Ramhound vor 6 Jahren 0

0 Antworten auf die Frage