Powershell : Pesquisa de Subdiretório e copie o arquivo para o diretório

0

Pergunta

Eu estive trabalhando em um script do Powershell do passado 2 semanas e eu não tenho feito muito progresso em que.

Então, eu estou tentando copiar um arquivo chamado versão.propriedades da raiz do meu gradle projeto para os Subdiretórios como "src/main/resources", "src/main/webapp" e "src/main/aplicação". Se eu codificar o caminho que ele está trabalhando, mas estou tentando fazer é genérico por encontrar o diretório e copiar o meu arquivo para o diretório.

Eu quero a minha versão.propriedades de arquivo para ser copiado para "recursos","webapp" e "aplicação" directory depois de eu executar o meu script do powershell.

Como posso fazer isso? Todas as sugestões são bem-vindas.

$SourceDirectory = "Projectroot\version.properties"
$folders = gci $SourceDirectory -Recurse -Directory
$jar = "src/main/resources"
$ear = "src/main/application"
$war = "src/main/webapp"
    
foreach ($folder in Sfolders) {
    if (Test-Path $folder/$jar) {
        write-host "copying to $folder/$jar"
        Copy-Item-Path "{$SourceDirectory}\version.properties" -Destination $folder/$jar -Recurse -Force
    }
    
    elseif (Test-Path $folder/$ear) {
        write-host "copying to $folder/$ear"
        Copy-Item-Path "{$SourceDirectory}\version.properties" -Destination $folder/$ear -Recurse -Force
    }
    
    elseif (Test-Path $folder/$war) {
        write-host "copying to $folder/$war"
        Copy-Item-Path "{$SourceDirectory}\version.properties" -Destination $folder/$war -Recurse -Force
    }
    
    else {
        Write-Host "No such path"
    }
}
1

Melhor resposta

0

Supondo que este é o caminho estrutura de um projeto:

#ProjectRoot
#ProjectRoot\version.properties <--- File
#ProjectRoot\src
#ProjectRoot\src\main  
#ProjectRoot\src\main\application
#ProjectRoot\src\main\resources
#ProjectRoot\src\main\webapp

O seguinte script vai fazer o que você procura.


$SourceDirectory = "C:\temp\Projectroot"
$DestinationDirectories = 'resources','application','webapp'

foreach ($I in $DestinationDirectories) {
    $CurrentDest = "$SourceDirectory\src\main\$I"
    if (Test-Path -Path $CurrentDest) {
        Copy-Item -Path "$SourceDirectory\version.properties" -Destination $CurrentDest
    } else {
        Write-Warning "Path not found: $CurrentDest"
    }
}

Se eu não receber a estrutura do caminho, por favor, esclarecer o que é isso. Eu estou supondo, também, que o "principal" é uma palavra-chave estática aqui, mas se não estiver, esse script pode precisar de ser ajustado para refletir isso.

2021-11-24 09:16:44

Isso ajuda. Obrigado
Abhinandan RK

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................