[ CoyoteKG @ 22.07.2019. 11:30 ] @
Nemam nekog iskustva sa Powershell i prilicno mi je konfuzno

Vidim da postoji neki cmdlet Move-Item i u dokumentaciji
https://docs.microsoft.com/en-...nt/move-item?view=powershell-6


Code:

Example 2.
Move-Item -Path C:\Temp -Destination C:\Logs


sam kapirao da sve kako je u Temp ce pomeriti u Logs. Ali nije.
Pa sam onda pokusao sa recurse flag-om

Code:

Example 4.
Get-ChildItem -Path ".\*.txt" -Recurse | Move-Item -Destination "C:\TextFiles"


s tim sto ne koristim samo za neke odredjene fajlove nego zelim sve. Ovo je moja komanda.
Code:

Invoke-Command -ScriptBlock {
Get-ChildItem -Path "C:\RemoteFolder\*" | Move-Item -Destination "C:\BackupFolder\$((Get-Date).ToString('yyyy-MM-dd-HHmms'))"
}


Pokusao sam i direktno na serveru bez Invoke-Command ali isti problem.

Odnosno problem je sto mi ne sacuva kompletnu folder strukturu. Nego sve spakuje u root backupFolder.

Probao sam i samo C:\RemoteFolder i C:\RemoteFolder\ i C:\RemoteFolder\* ali je uvek isti rezultat.
[ djoka_l @ 22.07.2019. 12:13 ] @
Preporučujem ti da koristiš xcopy komandu.
U svakom slučaju, korisno je da znaš da barataš sa xcopy.
[ Panta_ @ 22.07.2019. 12:33 ] @
Probaj sa: mv c:\temp\* c:\logs

Get-Help mv
[ CoyoteKG @ 22.07.2019. 13:39 ] @
Djoko, hocu da pomerim skroz fajlove, da bih mogao da uradim deploy novih u taj folder.

Panto sam prvo to. Doduse Move-Item pa tako kako si napisao i nije radilo.

Ali pazi sad ovu glupost, na tragu sam donekle.

Izbacio sam Get-Date i koristio Example 2 iz prvog posta.

Izgleda recimo ovako
Code:
Move-Item -Path C:\inetpub\wwwroot\Test\* -Destination "C:\BackupFolder\bla"

Mora zvezdica posle Test inace ce u backup folderu da mi kreira podfolder Test. Doduse na kraju krajeva ni to mi ne smeta.

Fora je kod ove komande, ako vec postoji bla folder on ce lepo spakovati sve unutar njega.
Ako ne postoji nego kreira, kao sto bi kreirao sa Get-Date funkcijom, onda istumba sve u njega duplira ono sto je u folderima

Pa umesto da izgleda ovako
c:\BackupFolder\bla\folder1
c:\BackupFolder\bla\folder1\podfolder1
c:\BackupFolder\bla\folder1\podfolder2
c:\BackupFolder\bla\folder2
c:\BackupFolder\bla\folder2\podfolder3
c:\BackupFolder\bla\folder2\podfolder4
c:\BackupFolder\bla\folder2\podfolder5

Dobijem ovo

c:\BackupFolder\bla\folder1
c:\BackupFolder\bla\folder1\podfolder1
c:\BackupFolder\bla\folder1\podfolder2
c:\BackupFolder\bla\podfolder1
c:\BackupFolder\bla\podfolder2

c:\BackupFolder\bla\folder2
c:\BackupFolder\bla\folder2\podfolder3
c:\BackupFolder\bla\folder2\podfolder4
c:\BackupFolder\bla\folder2\podfolder5
c:\BackupFolder\bla\podfolder3
c:\BackupFolder\bla\podfolder4
c:\BackupFolder\bla\podfolder5
[ CoyoteKG @ 22.07.2019. 14:05 ] @
Evo kompletne skripte. Izvrsava se kod mene lokalno, a deploy u Hyper-V virtualku.
Repo je bzvz neki sa neta.

Code:
$Session = New-PSSession -ComputerName "172.18.47.49" -Credential "WIN-DAB2TQ2DPT4\Administrator"
$LocalWorkingDirectory = "D:\TMP\WorkingDirectory"
$GitRepo = "https://github.com/aussiearef/Accounting.git"

Remove-Item $LocalWorkingDirectory -Force -Recurse
git clone $GitRepo $LocalWorkingDirectory

#Invoke-Command -ScriptBlock {Stop-Service DService} $Session

Invoke-Command -ScriptBlock {
       Move-Item -Path C:\inetpub\wwwroot\Accounting\ -Destination "C:\BackupFolder\$((Get-Date).ToString('yyyy-MM-dd-HHmms'))\"
} $Session

Copy-Item "$LocalWorkingDirectory\*" -Exclude ".git*" -Destination "C:\inetpub\wwwroot\Accounting" -ToSession $Session -Recurse

#Invoke-Command -ScriptBlock {Start-Service DService} $Session




Edit:
Zeza me izgleda ta * u putanjama. Bez njih radi. Ali mi sad ne radi exclude u copy-item :D.
Mislim da sam negde video ceo pipeline sa get-child | when (uslov da izbacim sve sto ima .git)| copy-item s cim bih mozda mogao da resim to.

Code:
$Session = New-PSSession -ComputerName "172.18.47.49" -Credential "WIN-DAB2TQ2DPT4\Administrator"
$LocalWorkingDirectory = "D:\TMP\WorkingDirectory"
$GitRepo = "https://github.com/aussiearef/Accounting.git"

Remove-Item $LocalWorkingDirectory -Force -Recurse
git clone $GitRepo $LocalWorkingDirectory


#Invoke-Command -ScriptBlock {Stop-Service DService} $Session

Invoke-Command -ScriptBlock {
       Move-Item -Path C:\inetpub\wwwroot\Test\ -Destination "C:\BackupFolder\$((Get-Date).ToString('yyyy-MM-dd-HHmms'))\"
} $Session

Copy-Item "$LocalWorkingDirectory\" -Destination "C:\inetpub\wwwroot\Test\" -ToSession $Session -Recurse

#Invoke-Command -ScriptBlock {Start-Service DService} $Session



[Ovu poruku je menjao CoyoteKG dana 22.07.2019. u 15:50 GMT+1]
[ Panta_ @ 22.07.2019. 15:09 ] @
Citat:
Ali pazi sad ovu glupost, na tragu sam donekle.

Izbacio sam Get-Date i koristio Example 2 iz prvog posta.

Izgleda recimo ovako
Code:
Move-Item -Path C:\inetpub\wwwroot\Test\* -Destination "C:\BackupFolder\bla"

Mora zvezdica posle Test inace ce u backup folderu da mi kreira podfolder Test.

Ali, pazi ovo:
Citat:
Probaj sa: mv c:\temp\* c:\logs

mv je alias za Move-Item. Zvezdica je wildcard i predstavlja bilo koji karakter u imenu fajla/foldera u temp direktorijumu.

https://en.wikipedia.org/wiki/Glob_(programming)
[ CoyoteKG @ 22.07.2019. 15:39 ] @
Da radi O.o
Ako je alias, zasto mi nije radio Move-Item. Eto gore u primeru koji si citirao sam isto tako napisao. Samo bez -path i destination.

Ali sad nov problem nastao. Nesto sam u medjuvremenu izgleda zaebao.

Ovo mi vise ne radi. Isti problem kao sa move. Sve strpa u root folder.
[code]
Copy-Item "$LocalWorkingDirectory\*" -Exclude "*.git*" -Destination "C:\inetpub\wwwroot\Test" -ToSession $Session -Recurse
[\code]