O PowerShell sobrescreve a variável de origem quando eu crio uma nova variável concatenada

1

Eu tenho um script grande que vai pedir um diretório de download e baixar um monte de arquivos nele. No entanto, quando eu defino a string de nome de arquivo de download com base na string de diretório, elas são substituídas pela string de nome de arquivo completo. Aqui está o que eu quero dizer:

$dldir = 'c:\downloads'
$dlfile = $dldir += '\data.csv'

Isso resulta em $ dldir e $ dlfile a serem definidos como "c: \ downloads \ data.csv". Obviamente, como eu quero reutilizar $ dldir para definir $ dlfile várias vezes no script, não quero que isso mude. Alguém sabe como fazer isso?

Obrigado.

    
por MrDrMcCoy 18.09.2012 / 00:16

2 respostas

1

Em vez de:

$dlfile = $dldir += '\data.csv'

use:

$dlfile = $dldir + '\data.csv'
    
por 18.09.2012 / 00:18
0

Outra opção seria usar o Join-Path

$dlfile = Join-Path $dldir '\data.csv'

O benefício do Join-Path é que você não precisa se preocupar com barras iniciais ou finais. o comando limpará isso para você e fornecerá um caminho de arquivo limpo e agradável.

Então

$dlfile = Join-Path $dldir 'data.csv'

ou

$dldir = 'c:\downloads\'
$dlfile = Join-Path $dldir '\data.csv'

ou

$dldir = 'c:\downloads\'
$dlfile = Join-Path $dldir '\data.csv'

seria tudo com um caminho válido. Isso é muito útil se você estiver inserindo o usuário no local do arquivo e não quiser se preocupar com a limpeza da entrada para barras finais.

    
por 19.09.2012 / 21:12

Tags