Salt la conținut

SUBIECTE NOI
« 1 / 5 »
RSS
Montare parchet in balcon

Exista doar ... si restul

Instagram - sunt eu batran, sau...

Regim utilizare HDD Ubuntu
 La mulți ani @yanni17!

La mulți ani @Kokoshmare!

Mai exista la voi in oras strandu...

Bon Jovi - Living Proof
 Problema card reader Sandisk

Recomandare acumulator 26650

Accident nerespectare viteza

Consumul in bord VS consumul la p...
 PC-ul nu booteaza

Coada dronei de lupta Fioroasa

Taxa RAR pt motor 2.0 diesel Euro...

Radio Aftermarket Golf 5
 

PowerShell - Cum copiez niste linii dintr-un fisier un altul

- - - - -
  • Vă rugăm să vă autentificați pentru a răspunde
3 răspunsuri în acest subiect

#1
me_suzy

me_suzy

    Member

  • Grup: Members
  • Mesaje: 748
  • Înscris: 29.04.2007
salut prieteni, am doua foldere. Folder1 si Folder2. In fiecare folder sunt acelasi numar de fisiere cu aceleasi denumiri, numai continutul difera. Vreau sa copiez cu PowerShell , din fisierele din Folder1 toate liniile cuprinse intre tagurile <!--START --> si <!--FINNISH1 -->  in fisierele din Folder2, peste cuvantul "PUT-HERE-THE-CODE". Veti vedea imaginea de mai jos si veti intelege mai bine.

Am facut un cod in PoweShell, dar ceva gresesc, caci nu-mi merge. Ma poate ajuta cineva care se pricepe cat de cat ?


$src = Get-ChildItem -Path "c:\Folder1" -Filter "*.html";
$destFld = "c:\Folder2";
$src | % { Process {

If ( Test-Path "$destFld\$($_.Name)" ) {
Clear-Variable -Name ("a","b","x","y","z");
$z = Get-Content $_.FullName -Raw;
$y = "`t`t<!-- $((($z -split "<!--")[0]).Trim())`r`n";
$x = "`t`t<!--FINNISH1 -->";
$a = Get-Content "$destFld\$($_.Name)" -Raw;
  $b = "PUT-HERE-THE-CODE";
  $b = "$(($a -split "<!--")[0].Trim())`r`n";
$y | Out-File "$destFld\$($_.Name)" -Append;
$x | Out-File "$destFld\$($_.Name)" -Append;
$b | Out-File "$destFld\$($_.Name)" -Append;   
}
}};


[ https://snipboard.io/uzFPMa.jpg - Pentru incarcare in pagina (embed) Click aici ]

Editat de me_suzy, 13 februarie 2021 - 12:40.


#2
pelikanu

pelikanu

    tread carefully

  • Grup: Senior Members
  • Mesaje: 5.089
  • Înscris: 19.08.2005
Nu mai bine muti cu totul fisierele din locatia 1 in locatia 2?

#3
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Mesaje: 30.259
  • Înscris: 24.02.2007
Cum pare mai mult o problema de programare decat de scripting, as profita de faptul ca Powershell are acces la biblioteci .NET si as scrie cod similar cu cel ce l-as fi scris in C#.

#4
me_suzy

me_suzy

    Member

  • Grup: Members
  • Mesaje: 748
  • Înscris: 29.04.2007
am gasit raspunsul aici:

https://docs.microso...to-a-singl.html

$sourceFiles = Get-ChildItem 'c:\Folder1' 
$destinationFolder = 'c:\Folder2'
foreach ($file in $sourceFiles) {
$sourceContent = Get-Content $file.FullName -Raw
$contentToInsert = [regex]::match($sourceContent,"(?ms)\<!--START--\>(.+)\<!--FINNISH --\>").value
$destinationContent = Get-Content $destinationFolder\$($file.Name) -Raw
$destinationContent = $destinationContent -replace 'PUT-HERE-THE-CODE',$contentToInsert
Set-Content -Path $destinationFolder\$($file.Name) -Value $destinationContent -Encoding UTF8
} #end foreach file


Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

www.neurohope.ro

Utilizatori activi: 1

0 membri, 1 vizitatori, 0 utilizatori anonimi

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate