验证Powershell中输入的文件名

用户名

我想验证输入的文件名,并在PowerShell中检查它是否包含无效字符。我尝试了以下方法,该方法仅在输入这些字符之一时有效,但在给定的字母数字字符串包含这些字符时似乎不起作用。我相信我没有正确构造正则表达式,验证给定字符串是否包含这些字符的正确方法是什么?提前致谢。

#Validate file name whether it contains invalid characters: \ / : * ? " < > |
$filename = "\?filename.txt"
if($filename -match "^[\\\/\:\*\?\<\>\|]*$")
    {Write-Host "$filename contains invalid characters"}
else
    {Write-Host "$filename is valid"}
Mathias R. Jessen

我将使用Path.GetInvalidFileNameChars()而不是对正则表达式模式中的字符进行硬编码,然后使用该String.IndexOfAny()方法来测试文件名是否包含任何无效字符:

function Test-ValidFileName
{
    param([string]$FileName)

    $IndexOfInvalidChar = $FileName.IndexOfAny([System.IO.Path]::GetInvalidFileNameChars())

    # IndexOfAny() returns the value -1 to indicate no such character was found
    if($IndexOfInvalidChar -eq -1)
    {
        return $true
    }
    else
    {
        return $false
    }
}

接着:

$filename = "\?filename.txt"
if(Test-ValidFileName $filename)
{
    Write-Host "$filename is valid"
}
else
{
    Write-Host "$filename contains invalid characters"
}

如果您不想定义一个新函数,可以将其简化为:

if($filename.IndexOfAny([System.IO.Path]::GetInvalidFileNameChars()) -eq -1)
{
    Write-Host "$filename is valid"
}
else
{
    Write-Host "$filename contains invalid characters"
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从输入字段验证 onchange 文件名(普通 javascript)

来自分类Dev

从powershell中的部分读取文件名

来自分类Dev

在 PowerShell 中重命名文件名

来自分类Dev

在 Powershell 中查找重复的文件名

来自分类Dev

在Firefox中处理html输入类型文件的文件名

来自分类Dev

jQuery检查文件类型输入中的上传文件名

来自分类Dev

PDI - 基于文件名中的日期的多个文件输入

来自分类Dev

在Powershell文件名中按日期列出文件

来自分类Dev

如何使用PowerShell中的文件内容获取文件名

来自分类Dev

如何在ffmpeg的输出文件名中包含输入文件名

来自分类Dev

如何在bash脚本中验证文件名?

来自分类Dev

如何在java中验证文件名

来自分类Dev

如何在Powershell中拆分文件名并从中选择文件名?

来自分类Dev

如何在Powershell脚本中解析相对或绝对文件名输入参数的绝对路径?

来自分类Dev

从powershell中的文件名中删除特殊字符

来自分类Dev

Golang如何在Go中读取输入文件名

来自分类Dev

使用Automator中的数组变量作为文件名输入

来自分类Dev

如何从“多重输入”中的FileReader函数获取文件名?

来自分类Dev

使用Automator中的数组变量作为文件名输入

来自分类Dev

水壶勺-文件名输入中的变量

来自分类Dev

在html输入中堆叠附加的文件名

来自分类Dev

如何从标准输入中获取文件名

来自分类Dev

Powershell文件名检查

来自分类Dev

文件名提取-Powershell

来自分类Dev

脚本输入文件名或标准输入

来自分类Dev

Powershell:将昨天的日期放在文件名中

来自分类Dev

PowerShell多条语句条件-比较文件名中的日期

来自分类Dev

使用Powershell删除文件名中的方括号字符

来自分类Dev

使用PowerShell重命名或删除文件名中的字符

Related 相关文章

  1. 1

    从输入字段验证 onchange 文件名(普通 javascript)

  2. 2

    从powershell中的部分读取文件名

  3. 3

    在 PowerShell 中重命名文件名

  4. 4

    在 Powershell 中查找重复的文件名

  5. 5

    在Firefox中处理html输入类型文件的文件名

  6. 6

    jQuery检查文件类型输入中的上传文件名

  7. 7

    PDI - 基于文件名中的日期的多个文件输入

  8. 8

    在Powershell文件名中按日期列出文件

  9. 9

    如何使用PowerShell中的文件内容获取文件名

  10. 10

    如何在ffmpeg的输出文件名中包含输入文件名

  11. 11

    如何在bash脚本中验证文件名?

  12. 12

    如何在java中验证文件名

  13. 13

    如何在Powershell中拆分文件名并从中选择文件名?

  14. 14

    如何在Powershell脚本中解析相对或绝对文件名输入参数的绝对路径?

  15. 15

    从powershell中的文件名中删除特殊字符

  16. 16

    Golang如何在Go中读取输入文件名

  17. 17

    使用Automator中的数组变量作为文件名输入

  18. 18

    如何从“多重输入”中的FileReader函数获取文件名?

  19. 19

    使用Automator中的数组变量作为文件名输入

  20. 20

    水壶勺-文件名输入中的变量

  21. 21

    在html输入中堆叠附加的文件名

  22. 22

    如何从标准输入中获取文件名

  23. 23

    Powershell文件名检查

  24. 24

    文件名提取-Powershell

  25. 25

    脚本输入文件名或标准输入

  26. 26

    Powershell:将昨天的日期放在文件名中

  27. 27

    PowerShell多条语句条件-比较文件名中的日期

  28. 28

    使用Powershell删除文件名中的方括号字符

  29. 29

    使用PowerShell重命名或删除文件名中的字符

热门标签

归档