Pergunta

Eu estou tentando copiar um monte de diretórios.Eu tenho arquivos de texto que tem um nome parecido, e que eu preciso para coincidir com os diretórios para os arquivos de texto para determinar quais diretórios para copiar.

Isso é o que eu fiz e eu não consigo descobrir como corrigi-lo.Eu estou andando em círculos.

$destination = "..\..\$args\Images\"
$txtfiles = Get-ChildItem $destination -Include *.txt
$source = "..\..\..\Images\" | ?{ $_.PSIsContainer } | Where-Object { $_.Name -Like "*$txtfiles*" } | Copy-Item $destination

Um exemplo de um arquivo txt: 1e03655b-0aac-48b2-82f3-75942084af7a.txt

e a pasta: name.1e03655b-0aac-48b2-82f3-75942084af7a

Então eu preciso encontrar as pastas que correspondem a arquivos txt e copiar a pasta para o diretório do arquivo txt.

Obrigado

Foi útil?

Solução

Você deseja expandir o BaseName propriedades desses arquivos de texto (para cortar .txt parte) e tem uma matriz de seqüências de caracteres, tais como:

1e03655b-0aac-48b2-82f3-75942084af7a
1e03655b-0aac-48b2-82f3-75942084af7b
1e03655b-0aac-48b2-82f3-75942084af8g
1e03655b-0aac-48b2-82f3-75942084afba

Em seguida, o seu $source = linha precisa puxar uma listagem de diretório e não apenas enviar uma cadeia de caracteres para o pipeline e, em seguida, eu gostaria de sugerir a correspondência de nomes de diretório com um exelente jogo, e verificar para ver se esse jogo é -in $txtfiles.

$destination = "..\..\$args\Images\"
$txtfiles = Get-ChildItem $destination -Filter *.txt | Select -ExpandProperty BaseName
$source = "..\..\..\Images\"
GCI $source -Directory | ?{ $_.Name -match "(\w{8}-\w{4}-\w{4}-\w{4}-\w{12})$" } | %{If($Matches[1] -in $txtfiles){Copy-Item $_.FullName $destination}}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top