Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Add -LiteralPath parameter to Start-ThreadJob for cross-platform path handling

Aberta
#56 0 comentários 1 reação 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
56/100
Tipo de issue
Funcionalidade
Clareza
Claramente especificada
Status de atividade
Estagnada
Stack de tecnologia
powershell
Domínio
cli

Direção de pesquisa

Start with src/code/Microsoft.PowerShell.ThreadJob.cs, especially the GetScriptBlockFromFile method linked in the issue, and trace how -FilePath parameter sets are declared. Compare the parameter sets and aliases with Start-Job, then inspect or run the existing Start-ThreadJob tests for file paths. Done means -LiteralPath, -PSPath, and -LP accept wildcard characters literally and cannot be combined with -FilePath.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

enhancement
Summary of the new feature / enhancement

Summary

Start-ThreadJob should support -LiteralPath parameter (with -PSPath and -LP aliases) to match Start-Job's functionality and handle cross-platform file paths that may contain wildcard characters.

Problem

PowerShell is now cross-platform, and characters traditionally used as wildcards (*, ?, [, ]) may be present in filenames on non-Windows systems (e.g., Linux, macOS). Currently, Start-ThreadJob only has a -FilePath parameter, which may cause issues when:

  1. A legitimate filename contains wildcard characters on Unix-like systems
  2. Users need to ensure paths are interpreted literally without pattern matching
  3. Users want API consistency between Start-Job and Start-ThreadJob

Current Behavior

Start-ThreadJob only supports:

Start-ThreadJob -FilePath "path/to/script.ps1"

The -FilePath parameter rejects paths with wildcard characters (see GetScriptBlockFromFile method):

if (WildcardPattern.ContainsWildcardCharacters(filePath))
{
    throw new ArgumentException("FilePath cannot contain wildcards.");
}
Proposed technical implementation details (optional)

Proposed Solution

Add a -LiteralPath parameter to Start-ThreadJob with:

  • Aliases: -PSPath, -LP (matching Start-Job)
  • Behavior: Interprets paths literally without wildcard evaluation
  • Mutual exclusivity: -FilePath and -LiteralPath should be in different parameter sets

Example usage:

# For a file literally named "test[1].ps1" on Linux
Start-ThreadJob -LiteralPath "/home/user/scripts/test[1].ps1"

# With aliases
Start-ThreadJob -PSPath "/home/user/scripts/test[1].ps1"
Start-ThreadJob -LP "/home/user/scripts/test[1].ps1"
Linguagem predominante
PowerShell
Estrelas
37
Forks
22
Métricas de merge de PRs
Nenhum PR com merge em 30d

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de PowerShell/ThreadJob

Todas as issues de PowerShell/ThreadJob

Issues semelhantes

Mais issues de CLI

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.