从作为字符串参数传递到 powershell 的文件名中查找文件扩展名

问题描述 投票:0回答:1

我是 PowerShell 的绝对初学者, 带有一对 PS1 文件。 第一个执行一些基本检查,然后启动一个文件,其完整路径已作为字符串传入。 $参数[0] 一切正常, 但传入的文件名可以是批处理文件或 PS1。 我有两个问题: 在脚本中如何从名称中获取文件扩展名? 将扩展名作为另一个参数传递会更容易/更好吗? 然后根据需要运行批处理或 PS1。 如果扩展名是 PS1 则运行 PS1, 如果是BAT,则运行批处理文件

谢谢

powershell batch-file split substring
1个回答
0
投票

您可以使用以下方式获取扩展:

(Get-ChildItem .\test.ps1).Extension

本例中输出为“.ps1”。

您需要在脚本中使用类似的内容:

switch ((Get-ChildItem $argv[0]).Extension) {
    ".ps1" {
        # Do this for ps1
    }
    ".bat" {
        # Do this for bat
    }
    default {
        # Do this for something else
    }
© www.soinside.com 2019 - 2024. All rights reserved.