Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Baterie auto AGM 70AH vs normala ...

Extras carte funciara

Carucior pliabil pentru cumparatu...

In ce supermarket gasesc carne de...
 Cat de riscant e sa rezerv un hot...

Audi Q3 F3 PHEV - impresii si con...

AC Vortex nu mai incalzește

Scule electrice și impactul ...
 Huawei Pura 70/Pro/Ultra

Chiar se platesc pensiile la term...

Cu autorulota prin jud. Buzau

Cuptor Electrolux EOE7C31Z, cum i...
 Cablu Corsair 600W GPU

Solicitare documente emag

Uzucapiune teren intravilan

Recomandare aparat foto pt fotogr...
 

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: 747
  • Î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,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
  • Posts: 30,252
  • Î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: 747
  • Î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