Переименование пункта меню Пуск один раз в Windows 10

433
DirkDig

У меня есть клиент (назовем его ABC), который запускает скрипт для переименования некоторых файлов в меню «Пуск» Windows 10. Скрипт будет запускаться каждый раз, когда открывается ABC. Мой текущий скрипт PowerShell:

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

где Parent Folder - это просто каталог, в котором находятся файлы .lnk.

Это прекрасно работает и делает то, что я хочу, чтобы он выполнялся при первом запуске, но проблема в том, что файл переименовывается при каждом открытии ABC, и имя файла удваивается.

Мне нужно продолжать запускать скрипт, потому что новые версии добавляются в ABC каждые несколько месяцев, и старые версии также должны быть сохранены.

Поэтому мне нужно проверить, был ли файл уже переименован и игнорировал ли он, но если нет, запустите сценарий powershell, чтобы переименовать его.

Надеюсь, мой вопрос ясен, дайте мне знать, если потребуются дополнительные разъяснения.

0
Ваш вопрос действительно сбивает с толку. Вы на самом деле не задаете вопрос. Вы просто описываете сценарий. Ramhound 6 лет назад 1
«Поэтому мне нужно проверить, был ли файл уже переименован и игнорировал ли он, но если нет, запустите сценарий powershell, чтобы переименовать его». DirkDig 6 лет назад 0
Это утверждение, а не вопрос. Мы также не сервис написания сценариев. Мы можем только указать вам правильное направление. Ваш вопрос не имеет форматирования. Проверить, существует ли файл, достаточно просто в PowerShell. Что вас смущает? Ramhound 6 лет назад 0
Как проверить, был ли файл уже переименован в нужный мне формат. Если он был переименован, не делайте это снова. Если он не был переименован, переименуйте его. Я думаю, что я должен добавить «как» в начало утверждения, а не предполагать, что оно подразумевается. DirkDig 6 лет назад 0
«Как проверить, был ли файл уже переименован в нужный мне формат». Просто проверьте, существует ли файл. Вы все еще не смогли отредактировать свой вопрос, чтобы уточнить его. Ramhound 6 лет назад 0
Мы не форум. Суперпользователь тоже не умирает ни от какого натяжения воображения. Я полагаю, я должен извиниться за свой ответ на ваш первый комментарий, я был слегка раздражен, вы бы не поняли, что ваш вопрос сбивает с толку. Я также чувствую, что проверка того, существует ли файл, является верным решением, но ваш сценарий в настоящее время этого не делает, и вы не объясняете, почему этого нельзя сделать. Надеюсь, вы воспользуетесь этой возможностью, чтобы прояснить свой вопрос, вместо того, чтобы оскорблять другую половину моего мозга. Ramhound 6 лет назад 0
Это то, что я прошу. Лучшее решение для проверки, если имя файла было изменено. Существует несколько версий этого инструмента, и каждая из них должна быть сохранена. Поэтому, когда выходит версия 3, версии 1 и 2 не удаляются, потому что они используются в определенных обстоятельствах. И новые версии будут выходить каждые несколько месяцев. Сотрудник не устанавливает какую-либо версию, пока им не понадобится эта версия. В Windows 7 меню «Пуск» предоставляло иерархию, которая помогала различать инструменты по версиям, а Windows 10 - нет. DirkDig 6 лет назад 0
Поэтому мне нужно переименовать эти файлы, добавив версию к их имени, чтобы сотрудники могли различить их. Так что мой PowerShell должен будет определить имя родительской папки, которая содержит версию, и добавить ее к файлам. Проблема в том, что когда клиент, который запускает эти инструменты, открывается, он каждый раз запускает этот сценарий, и тогда перед ним будет иметься несколько версий. (т. е. V1.02.301 -> V1.02.301V1.02.301 -> и т. д.) И даже не гарантируется, что установлена ​​каждая версия, поэтому мне нужно запускать скрипт каждый раз, когда они открывают клиент. DirkDig 6 лет назад 0
Я новичок в написании сценариев (окончил в мае) и не знаю лучших практик для этого. Это помощь, которую я прошу, совет или метод для наилучшей практики в этом. Я задавал вопросы на этом форуме и пару раз переполнял стек, и мне кажется, что каждый раз я получаю оскорбления вместо какой-либо помощи. Тогда я злюсь и грубо отвечаю, тогда я должен создать новую учетную запись. DirkDig 6 лет назад 0
Я повторю этот факт еще раз, мы не форум, здесь никто не оскорбил вас. Так что, если вы злитесь, это может быть из-за вашего непонимания того, что сообщество ожидает от вопроса. Ramhound 6 лет назад 0
Любое событие .... [Лучший способ проверить, существует ли путь в PowerShell] (https://stackoverflow.com/questions/31888580/a-better-way-to-check-if-a-path- существует-или-не-в-PowerShell) или [Test-Path] (https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/test-path?view=powershell-5.1 ) должно помочь. Я не собираюсь писать сценарий для вас, хотя. Когда я спросил «что вас смущает», я ожидал, что вы отредактируете свой вопрос и предоставите конкретную проблему с подходом определения того, существует ли уже файл / папка / путь. Этого не произошло Ramhound 6 лет назад 0

0 ответов на вопрос