2016-09-02 3 views
1

Im в настоящее время пытается реализовать функцию в моем графическом интерфейсе PowerShell, который позволяет пользователю «сокращать» имена файлов в определенной папке.Блокировка функции после ее использования в Powershell

Проблема в том, что если он нажмет кнопку дважды случайно, имя файла будет испорчено. Есть ли способ заблокировать функцию после ее использования или это просто, что мой скрипт недостаточно «умный»?

Оригинальное имя файла:

PM.KDP_client_provide_123_SE.xml 

После однократного применения:

PM.KDP_client1.xml 

После более чем один раз:

p.xml 

Вот код:

Try{ 
     Get-ChildItem -path K:\adm_spm_logdb_data\KDP\ErrorLog -ErrorAction Stop | Group-Object { $_.BaseName -replace 'provide.*$' } | ForEach-Object { 
     $name = $_.Name 
     $i = 1 
     $_.Group | ForEach-Object { 
      $_ | Rename-Item -NewName "$name$i$($_.Extension)" 
      $i++ 
       } 
      } 
     }catch [System.Exception]{ 
     $listBox1.Items.Add("Error found.") 
     } 
    } 
+2

Не можете ли вы просто отключить кнопку, установив ее свойство 'enabled'? – wOxxOm

+0

Спасибо wOxxOm Я изменил включенное свойство кнопки сейчас. –

ответ

2

В комментариях wOxxOm имеет самую логичную идею с точки зрения пользователя. Если вы не хотите, чтобы функция была способна снова щелкнуть кнопку, просто отключите эту кнопку, переключив ее включенное свойство.

Другим подходом было бы обновление вашей функции, так что она будет изолировать только те файлы, которые вы хотите изменить. Так, например, если вы только обновляете файлы, содержащие «предоставить» (предположим, основываясь на вашем имени файла), вам было изменено Get-ChildItem, чтобы вытаскивать только те типы файлов.

Get-ChildItem -path K:\adm_spm_logdb_data\KDP\ErrorLog -Filter "*provide*.xml" -ErrorAction Stop 

Я бы выбрал для отключения кнопки, хотя это не смутило бы пользователей.

+0

Большое спасибо! Ты мне очень помог. –

+0

@MichaelM. Что вы в итоге сделали? – Matt

+0

Я закончил использовать смесь между фильтром и включенным свойством :) –

Смежные вопросы