Powershell : Найдите подкаталог и скопируйте файл в этот каталог

0

Вопрос

Я работал над сценарием Powershell последние 2 недели и не добился в этом большого прогресса.

Поэтому я пытаюсь скопировать файл с именем version.properties из корневого каталога моего проекта gradle в такие подкаталоги, как "src/main/ресурсы", "src/main/веб-приложение" и "src/main/приложение". Если я жестко закодирую путь, он работает, но я пытаюсь сделать его универсальным, найдя каталог и скопировав мой файл в этот каталог.

Я хочу, чтобы мой файл version.properties был скопирован в каталог "ресурсы","веб-приложение" и "приложение" после запуска сценария powershell.

Как я могу это сделать? Любые предложения приветствуются.

$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

Лучший ответ

0

Предполагая, что это структура пути проекта:

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

Следующий сценарий сделает то, что вы ищете.


$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"
    }
}

Если я не понял структуру пути, пожалуйста, уточните, что это такое. Я также предполагаю, что "main" здесь является статическим ключевым словом, но если это не так, этот сценарий, возможно, потребуется скорректировать, чтобы отразить это.

2021-11-24 09:16:44

Это помогает. Спасибо
Abhinandan RK

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................