Powershell Arquivo Renomear Data / Hora

1

Eu usei um script de um post anterior e o modifiquei ligeiramente:

Get-ChildItem "c:\test\*.txt" | ForEach-Object {          
Rename-Item $_.FullName "$BackupFolder$($_.BaseName -replace " ", "_" -replace '\..*?$')-$(Get-Date -Format "ddMMyyyy").txt"
}

No entanto:

Arquivo renomeado atual: test-ddmmyy.txt
Formato requerido: testddmmyy.txt

    
por Ant 29.08.2013 / 10:46

1 resposta

1

Isso deve funcionar.

Get-ChildItem "c:\test\*.txt" | ForEach-Object {          
Rename-Item $_.FullName "$BackupFolder$($_.BaseName -replace " ", "_" -replace '\..*?$')$(Get-Date -Format "ddMMyyyy").txt"

Seu traço estava vindo de pouco antes de $(Get-Date . Lembre-se, ao passar aspas duplas como parâmetro, qualquer coisa que não seja uma variável ou que não esteja entre parênteses e precedida por $ será tratada como um caractere de string.

No script abaixo:

$test='test';"$test-$(Get-Date -F 'ddMMyyyy')"

$test será expandido para seu valor 'test' , - será deixado sozinho, pois não é uma variável nem uma parte de uma expressão, e Get-Date -F 'ddMMyyyy' será processado e retornará sua saída, pois é separado como uma expressão com $( ... ) . Isso resultará em:

test-24112013

Livre-se do painel e ...

$test='test';"$test-$(Get-Date -F 'ddMMyyyy')"

.... saídas ...

test24112013
    
por 24.11.2013 / 08:49

Tags