Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
recomandare GPS android

La multi ani @MindArchitect!

La multi ani de Sfantul Nicolae&#...

Cum accesez Whatsapp daca ma obli...
 Ce melodie ati vrea sa ascultati ...

Recomandare radio muzica veche in...

OnePlus 12

tv jvc(vestel) cu dungi brusc
 Apel la relații clienți...

Debranșare de la curent elec...

IPS Teodosie este cercetat de DNA...

Race for Glory (2024)
 Apogeul frumusetii feminine 65+?

Achizitionare placa video Palit s...

Stie cineva daca tableta va funct...

Contract mandat SRL pentru micro ...
 

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

- - - - -
  • Please log in to reply
3 replies to this topic

#1
me_suzy

me_suzy

    Member

  • Grup: Members
  • Posts: 714
  • Î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 ]

Edited by me_suzy, 13 February 2021 - 12:40.


#2
pelikanu

pelikanu

    tread carefully

  • Grup: Senior Members
  • Posts: 5,088
  • Î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
  • Posts: 29,848
  • Î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
  • Posts: 714
  • Î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

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

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