Estou escrevendo um script do PowerShell para criar vários diretórios se eles não existirem.
O sistema de arquivos é semelhante a este
D:\
D:\TopDirec\SubDirec\Project1\Revision1\Reports\
D:\TopDirec\SubDirec\Project2\Revision1\
D:\TopDirec\SubDirec\Project3\Revision1\
- Cada pasta do projeto possui várias revisões.
- Cada pasta de revisão precisa de uma pasta Relatórios.
- Algumas das pastas "revisões" já contêm uma pasta Relatórios; no entanto, a maioria não.
Eu preciso escrever um script que é executado diariamente para criar essas pastas para cada diretório.
Consigo escrever o script para criar uma pasta, mas a criação de várias pastas é problemática.
powershell
windows-server-2008
powershell-ise
ecollis6
fonte
fonte
Respostas:
Experimente o
-Force
parâmetro:Você pode usar
Test-Path -PathType Container
para verificar primeiro.Consulte o artigo de ajuda do Novo Item do MSDN para obter mais detalhes.
fonte
Test-Path
verifica se o caminho existe. Quando isso não acontecer, ele criará um novo diretório.fonte
test-path
).O seguinte trecho de código ajuda a criar um caminho completo.
A função acima divide o caminho que você passou para a função e verificará cada pasta se ela existe ou não. Se não existir, criará a respectiva pasta até a pasta de destino / final criada.
Para chamar a função, use a instrução abaixo:
fonte
Eu tive o mesmo problema. Você pode usar algo como isto:
fonte
Quando você especifica o
-Force
sinalizador, o PowerShell não reclama se a pasta já existir.Uma linha:
BTW, para agendar a tarefa, consulte este link: Agendamento de trabalhos em segundo plano .
fonte
Usar:
A primeira linha cria uma variável chamada
$path
e atribui a ela o valor da string "C: \ temp \"A segunda linha é uma
If
declaração que conta com a Test-Path cmdlet para verificar se a variável$path
que não existe. O não existe é qualificado usando o!
símbolo.Terceira linha: Se o caminho armazenado na string acima não for encontrado, o código entre os colchetes será executado.
md
é a versão curta da digitação:New-Item -ItemType Directory -Path $path
Nota: Eu não testei usando o
-Force
parâmetro com o abaixo para ver se há um comportamento indesejável se o caminho já existir.fonte
md "C:\first\second\third
criar todos eles.Existem três maneiras de criar um diretório usando o PowerShell:
fonte
Da sua situação, parece que você precisa criar uma pasta "Revisão #" uma vez por dia com uma pasta "Relatórios". Se for esse o caso, você só precisa saber qual é o próximo número de revisão. Escreva uma função que obtenha o próximo número de revisão, Get-NextRevisionNumber. Ou você pode fazer algo assim:
Instalação do PowerShell 3.0 .
fonte
Queria poder permitir que os usuários criassem facilmente um perfil padrão para o PowerShell substituir algumas configurações e acabei com a seguinte linha única (várias instruções sim, mas pode ser colada no PowerShell e executada ao mesmo tempo, que era o objetivo principal) ):
Para facilitar a leitura, veja como eu faria isso em um arquivo .ps1:
fonte
Aqui está um simples que funcionou para mim. Ele verifica se o caminho existe e, se não existir, criará não apenas o caminho raiz, mas também todos os subdiretórios:
fonte