在Powershell中使用后阻止函数

时间:2016-09-02 11:27:07

标签: powershell

我目前正在尝试在PowerShell GUI中实现一个功能,允许用户“缩短”特定文件夹中的文件名。

问题是,如果他偶然按下按钮两次,文件名就会搞砸了。有没有办法在使用它后阻止它,或者只是我的脚本不够“智能”?

原始文件名:

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.")
        }
    }

1 个答案:

答案 0 :(得分:2)

在评论中,wOxxOm从用户体验的角度来看是最符合逻辑的。如果您不希望再次单击该按钮,只需通过切换其启用的属性来禁用该按钮。

另一种方法是更新您的功能,使其仅隔离您想要更改的文件。因此,例如,如果您只更新包含“提供”的文件(根据您提供的文件名进行猜测),则会将Get-ChildItem更改为仅提取这些类型的文件。

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

我会选择禁用该按钮,因为这不会让用户感到困惑。