1

Я ищу способ пакетного создания папки с последующими подпапками.

Я смотрю на что-то вроде

c:\users\user\desktop\sample\1
c:\users\user\desktop\sample\2

и т.п.

Есть идеи?

Я бы предпочел для этого методы .cmd/PowerShell.

Если есть способ сделать это через терминал, я буду рад попробовать любые идеи / решения, загрузившись с живого диска Linux через usb.

2 ответа2

3

Вы можете использовать команду md так:

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

Это создаст две папки, как в вашем примере.

1

Этот скрипт PowerShell создаст каталоги с последовательными именами.

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.
#>   
}

Для использования кода ниже вам необходимо:

  1. Скопируйте приведенный выше код в файл с именем New-SequentialDirectory.ps1
  2. Добавьте функцию к вашей сессии с помощью этой команды 1
    . <path-to-New-Sequential-Directory.ps1>
  3. Вызовите функцию. Несколько примеров того, как это сделать, приведены в справке по команде, которая доступна через команду Get-Help New-SequentialDirectory -Examples когда функция находится в вашем сеансе.

1 Второй шаг может быть неудачным, поскольку по умолчанию PowerShell не позволяет запускать сценарии из файлов. Чтобы это исправить, вам нужно изменить политику выполнения на что-то чуть менее ограничительное. Для получения дополнительной информации см. Get-Help about_Execution_Policies

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .