Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Как фасовать папки при помощи bat или vbs? (http://forum.oszone.net/showthread.php?t=352477)

dstn 28-11-2022 13:20 2997528

Как фасовать папки при помощи bat или vbs?
 
Всем привет!
Есть пустые папки с номерами типа:
23452
45487
23455
65434
И есть папки практически с такими же названиями только в начале или в конце пишутся латинские буквы:
23452F
45487B
23455F1
65434B2
Как эти папки перенести по номерам в пустые папки например папку 23452F перенести в пустую папку 23452 при помощи bat файла?

Спасибо!

DJ Mogarych 28-11-2022 21:05 2997547

Powershell v5
Код:

$folder = "C:\temp\random"

$fNumOnly,$fRest = (dir $folder -Directory).where({$_.name -notmatch "\D"}, 'Split')
$fNumOnly |% {
$fRest |? name -match $_.name |mv -Destination $_.fullname -WhatIf
}

Предполагается, что папки лежат рядом, так как ничего на этот счёт не было сказано.
Чтобы реально переносило, уберите -WhatIf.

Создание тестовых папок

Код:

@("23452"
"45487"
"23455"
"65434"
"23452F"
"DEG23452"
"45487B"
"23455F1"
"65434B2"
"62434B2") |% {mkdir "C:\temp\random\$_" -ErrorAction SilentlyContinue > $null}


dstn 29-11-2022 11:06 2997572

Спасибо сработало, а как можно сделать что бы можно было задавать эти папки при условии того что папки в разных каталогах

DJ Mogarych 29-11-2022 11:32 2997574

Код:

$fRest = dir "C:\temp\from" -directory
$fNumOnly = dir "C:\temp\to" -directory

$fNumOnly |% {
$fRest |? name -match $_.name |mv -Destination $_.fullname -WhatIf
}


dstn 23-12-2022 11:47 2999602

Здравствуйте, подскажите как этот код сделать для фасовки pdf. Заранее спасибо!

DJ Mogarych 23-12-2022 12:53 2999608

Объясните так, чтобы это было понятно человеку, не умеющему читать мысли.

dstn 23-12-2022 13:53 2999613

Есть пустые папки с номерами типа:
23452
45487
23455
65434
И есть PDF файлы практически с такими же названиями только в начале или в конце пишутся латинские буквы:
23452F.pdf
45487B.pdf
23455F1.pdf
65434B2.pdf
Как эти PDF перенести по номерам в пустые папки например PDF 23452F1.pdf перенести в пустую папку 23452

DJ Mogarych 23-12-2022 17:46 2999628

Где находятся папки и файлы pdf, какова иерархия их расположения?

dstn 24-12-2022 19:02 2999684

Цитата:

Цитата DJ Mogarych (Сообщение 2999628)
Где находятся папки и файлы pdf, какова иерархия их расположения?

Они пдф лежат просто в одной папке под названием files с примерно такими номерами:
3452F.pdf
45487B.pdf
23455F1.pdf
65434B2.pdf

DJ Mogarych 25-12-2022 15:02 2999709

Ну, положим.

Powershell
Код:

$pdfs = dir "C:\temp\from\*.pdf"
$folders = dir "C:\temp\to" -directory

$folders |% {
$pdfs |? name -match $_.name |mv -Destination $_.fullname
}

Создание тестовых файлов и папок

Код:

@("23452"
"45487"
"23455"
"65434"
) |% {mkdir "C:\temp\to\$_" -ErrorAction SilentlyContinue > $null}

@("23452F"
"DEG23452"
"45487B"
"23455F1"
"65434B2"
"62434B2"
) |% {New-Item "C:\temp\from\$_.pdf" -ErrorAction SilentlyContinue > $null}



Время: 22:36.

Время: 22:36.
© OSzone.net 2001-