Problemas para criar pastas em lote usando cmdlets

Anônima
2025-01-05T17:15:00+00:00

Bom dia!

Não sei se aqui é o local adequado para pedir ajuda sobre scripts do PowerShell, caso não seja, peço desculpas.

Tenho um cmdlet para criação e organização de pastas e arquivos, mas ele não está funcionando direito. Eu preciso que todos os documentos sejam movidos para a pasta "Docs", mas a pasta não está sendo criada no local adequado, o Windows cria a pasta em outro diretório, mesmo executando o script na pasta raiz.

# Set source directory

$sourceDir = "d:\database\projects"

# Create target folders

$docsDir = "sourceDir\docs"

New-Item -Path $docsDir -ItemType Directory -Force

# Docs (.doc, .docx, .html, .md, .pdf, .rtf, .txt, .xls, .xlsx)

Get-ChildItem -Path $sourceDir -Filter ".doc" | Move-Item -Destination $docsDirGet-ChildItem -Path $sourceDir -Filter ".docx" | Move-Item -Destination $docsDirGet-ChildItem -Path $sourceDir -Filter ".html" | Move-Item -Destination $docsDirGet-ChildItem -Path $sourceDir -Filter ".md" | Move-Item -Destination $docsDirGet-ChildItem -Path $sourceDir -Filter ".pdf" | Move-Item -Destination $docsDirGet-ChildItem -Path $sourceDir -Filter ".rtf" | Move-Item -Destination $docsDirGet-ChildItem -Path $sourceDir -Filter ".txt" | Move-Item -Destination $docsDirGet-ChildItem -Path $sourceDir -Filter ".xls" | Move-Item -Destination $docsDirGet-ChildItem -Path $sourceDir -Filter "*.xlsx" | Move-Item -Destination $docsDir

Windows para empresas | Cliente Windows para profissionais de TI | Serviços de diretório | Logon e perfis de usuário

Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.

0 comentários Sem comentários
Resposta aceita pelo autor da pergunta
Anônima
2025-01-06T00:33:59+00:00

Esta resposta foi traduzida automaticamente. Como resultado, pode haver erros gramaticais ou palavras estranhas.

Olá!

Obrigado por postar na Comunidade da Microsoft.

Os problemas de script do PowerShell mencionados são causados principalmente por erros no processamento do caminho. Especificamente, quando você define o caminho da pasta de destino, $docsDir não usa corretamente o valor da variável $sourceDir, mas passa diretamente "sourceDir\docs" como uma string. Isso pode resultar em caminhos incorretos, fazendo com que pastas sejam criadas no diretório errado.

Análise de problemas

No seu script, $docsDir = "sourceDir\docs" na verdade atribui a string "sourceDir\docs" a $docsDir em vez de usar o valor da variável $sourceDir. A abordagem correta é concatenar $sourceDir e "docs" para que aponte corretamente para a pasta de destino.

solução

Você pode usar Join-Path para unir caminhos para garantir que os caminhos sejam emendados corretamente

Espero que as informações acima sejam úteis para você.

Atenciosamente

RunjieZhai

Esta resposta foi útil?

1 pessoa achou esta resposta útil.
0 comentários Sem comentários

0 respostas adicionais

Classificar por: Mais útil