Batch cria pastas?

1

Estou procurando uma maneira de criar em lotes uma pasta seguida de subpastas.

Estou vendo algo como

c:\users\user\desktop\sample
c:\users\user\desktop\sample

etc.

Alguma idéia?

Eu preferiria os métodos .cmd / PowerShell para isso.

Se houver uma maneira de fazer isso por meio de um terminal, terei prazer em tentar quaisquer ideias / soluções iniciando em um disco ao vivo do Linux via usb.

    
por Chris0089 14.06.2013 / 23:19

2 respostas

3

Você pode usar o comando md assim:

for /l %a in (1,1,2) do md "c:\users\user\desktop\sample\folder %a"

Isso criaria as duas pastas como no seu exemplo.

    
por 14.06.2013 / 23:23
1

Este script do PowerShell criará diretórios com nomes sequenciais numericamente.

function New-SequentialDirectory
{
Param
(
    [string] $Path = (Get-Location -PSProvider FileSystem).Path,
    [UInt32] $StartAt = 1,
    [UInt32] $EndAt
)

$Path = (Get-Location -PSProvider FileSystem).Path
if (-not (Test-Path -PathType Container $Path))
{
    $exception = New-Object System.IO.DirectoryNotFoundException "The specified directory does not exist: $Path"
    throw $exception
}

Write-Debug "Path: $Path"
foreach($number in $StartAt..$EndAt)
{
 $itemPath = Join-Path -Path $Path -ChildPath $number
 New-Item -Path $itemPath -ItemType Directory   
}
<#
.SYNOPSIS
Creates a series of directories with numerically sequential names.

.PARAMETER Path
The path at which the sequence should be created. This must be an existing directory.
.PARAMETER StartAt
The number at which the sequence should start. This value must be positive and may be greater than the value of the EndAt parameter.
.PARAMETER EndAt
The number at which the sequence should end. This value must be positive and may be less than the value of the StartAt parameter.

.EXAMPLE
New-SequentialDirectory -StartAt 1 -EndAt 10

 Directory: C:\Users\TestUser\Desktop\test


Mode                LastWriteTime     Length Name                                                                                                                                             
----                -------------     ------ ----                                                                                                                                             
d----        5/10/2014  2:18 p.m.            1                                                                                                                                                
d----        5/10/2014  2:18 p.m.            2                                                                                                                                                
d----        5/10/2014  2:18 p.m.            3                                                                                                                                                
d----        5/10/2014  2:18 p.m.            4                                                                                                                                                
d----        5/10/2014  2:18 p.m.            5                                                                                                                                                
d----        5/10/2014  2:18 p.m.            6                                                                                                                                                
d----        5/10/2014  2:18 p.m.            7                                                                                                                                                
d----        5/10/2014  2:18 p.m.            8                                                                                                                                                
d----        5/10/2014  2:18 p.m.            9                                                                                                                                                
d----        5/10/2014  2:18 p.m.            10                                                                                                                                               

This example shows the creation of a sequence of ten folders in the current directory.

.EXAMPLE

New-SequentialDirectory -StartAt 10 -EndAt 1


Directory: C:\Users\TestUser\Desktop\temp


Mode                LastWriteTime     Length Name                                                                                                                                             
----                -------------     ------ ----                                                                                                                                             
d----        5/10/2014  2:57 p.m.            10                                                                                                                                               
d----        5/10/2014  2:57 p.m.            9                                                                                                                                                
d----        5/10/2014  2:57 p.m.            8                                                                                                                                                
d----        5/10/2014  2:57 p.m.            7                                                                                                                                                
d----        5/10/2014  2:57 p.m.            6                                                                                                                                                
d----        5/10/2014  2:57 p.m.            5                                                                                                                                                
d----        5/10/2014  2:57 p.m.            4                                                                                                                                                
d----        5/10/2014  2:57 p.m.            3                                                                                                                                                
d----        5/10/2014  2:57 p.m.            2                                                                                                                                                
d----        5/10/2014  2:57 p.m.            1                                                                                                                                                

This example shows that the EndAt parameter can be less than the StartAt parameter.
#>   
}

Para usar o código abaixo, você precisa:

  1. Copie o código acima em um arquivo chamado New-SequentialDirectory.ps1
  2. Adicione a função à sua sessão com este comando 1
    . <path-to-New-Sequential-Directory.ps1>
  3. Chame a função. Alguns exemplos de como fazer isso são fornecidos na ajuda do comando que está disponível por meio do comando Get-Help New-SequentialDirectory -Examples quando a função estiver em sua sessão.

1 A segunda etapa pode falhar porque, por padrão, o PowerShell não permite a execução de scripts a partir de arquivos. Para corrigir isso, você precisa alterar a política de execução para algo um pouco menos restritivo. Para mais informações, consulte Get-Help about_Execution_Policies

    
por 05.10.2014 / 04:55