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

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

artbiokron@vk 15-03-2020 13:07 2913233

Перемещение всех файлов из индексных папок с последующим удалением
 
Господа, прощу помочь в решение следующей задачи:

есть каталог содержащий папки следующего вида: пятизначный цифровой код и индекс в скобках (пример 31000, 31000(1), 31000(2) и так далее)
необходимо перенести все содержимое папок с индексами, с последующим удалением их, в папку без индекса с тем же кодом.
-код всегда пятизначный 00000
-индекс всегда в скобках (n)
-переносить все содержимое индексных папок без разбору (*.cr2, *.dng)
-имена файлов не повторяются,
- после перемещения должны остаться папки только с кодом 00000 и перемещенными файлами, а папки с индексами 00000(n) удаляются

К сожалению в программировании полный ноль...

Iska 15-03-2020 13:16 2913234

Цитата:

Цитата artbiokron@vk
-имена файлов не повторяются, »

Что делать, если вдруг всё же повторятся? Заменять? Пропускать?

artbiokron@vk 15-03-2020 13:19 2913236

если повтор, то пусть сохраняется с индексом любым

Iska 15-03-2020 13:26 2913237

Вложенные каталоги есть?

artbiokron@vk 15-03-2020 13:41 2913240

нет, вложенных подкаталогов нет

Структура такая главный каталог А > 00000, 00000(1)... 00002, 00002(1), 00002(2)... 00002(n)...
внутри каталога А , только папки с кодами и индексами

alpap 15-03-2020 14:44 2913261

Код:

@echo off
set "d=C:\A"

pushd "%d%"
 for /f "tokens=1,2 delims=()" %%a in ('dir /ad/b') do if not "%%b"=="" >nul (move "%%a(%%b)\*" "%%a"& rd /q "%%a(%%b)")
popd
pause

без проверки на совпадение имен, т.е. все имена файлов уникальны.

Iska 15-03-2020 15:27 2913270

alpap, может, на всякий случай «…&& rd /q …"» — вдруг что-то не перенесётся?

Move - Windows CMD - SS64.com:
Цитата:

Errorlevels

If the File(s) were successfully moved/renamed %ERRORLEVEL% = 0
If the File was not found, could not be moved/renamed or bad parameters %ERRORLEVEL% = 1

artbiokron@vk 15-03-2020 16:15 2913289

ООООО сто тысяч благодарностей!

megaloman 15-03-2020 19:29 2913319

Цитата:

Цитата Iska
может, на всякий случай «…&& rd /q …"» — вдруг что-то не перенесётся »

Непустая папка без /S не удалится

Iska 15-03-2020 19:51 2913320

megaloman, не сообразил :).


Время: 01:28.

Время: 01:28.
© OSzone.net 2001-