Переместить каждую папку на два уровня вверх на один уровень - PullRequest
0 голосов
/ 30 июня 2018

Я пытаюсь отменить УЖАСНОЕ проектное решение, которое я был вынужден внедрить в базу данных, и надеюсь, что есть пакетный файл, который может это исправить.

В настоящее время файлы для записей хранятся в поле имени, а затем в номере записи. Мой последний начальник настаивал на том, чтобы иметь возможность просматривать записи через окна вместо интерфейса записей. Мне нужно это исправить, потому что мне нужно иметь возможность создавать записи без поля имени.

Так вот текущая структура

 Recordfiles
  John Smith
   230
    approvedpacket.pdf
    initialpacket.pdf
   232
    Approved packet.pdf
    Initialpacket.pdf
  Jane Frank
   343
    Deniedpacket.pdf

Мне нужно, чтобы он выглядел

 Recordfiles
  230
  232
  343

Так что мне нужно переместить каждую папку и ее содержимое на два уровня ниже / recordfiles / up на один уровень. Я пробовал много решений для пакетных файлов с разных сайтов, но пока не повезло. Каждый из них на мгновение всплывает в командном окне и ничего больше.

Примечание: я очень новичок в этом, я просто знаю некоторые базовые визуальные основы начального уровня и не имею никакого формального обучения. Любая помощь будет высоко ценится.

РЕДАКТИРОВАТЬ: Хорошо, так ... Я нашел способ сделать это. Я пошел в / recordfiles /, сделал * поиск, дождался, пока он загрузит каждый файл в этих папках, выбрал все пронумерованные папки и скопировал / вставил их туда, где я хотел, чтобы они были. Так что в этом нет никакой спешки, но я стараюсь сделать это с помощью командного файла для будущих проектов.

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

Что насчёт этого (не проверено):

pushd "D:\path\to\RecordFiles" || exit /B 1
for /F "delims= eol=|" %%A in ('dir /B /A:D "*"') do (
    for /D %%B in ("%%~A\*") do (
        move /Y "%%~B" "%%~dpA%%~nxB"
    )
    rmdir "%%~A"
)
popd
0 голосов
/ 30 июня 2018
> tree /F
A:.
│   _.cmd
│
└───Recordfiles
    ├───Jane Frank
    │   └───343
    │           Deniedpacket.pdf
    │
    └───John Smith
        ├───230
        │       approvedpacket.pdf
        │       initialpacket.pdf
        │
        └───232
                Approved packet.pdf
                Initialpacket.pdf

Эта строка делает ход

> for /f "delims=" %A in ('dir /B/S/AD "???" ^|findstr "\\[0-9][0-9][0-9]$" ') do @Move "%A" "%A\..\.."

В пакетном файле удвойте знаки процента

@Echo off
CD /D "X:\path\Recordfiles"
for /f "delims=" %%A in (
    'dir /B/S/AD "???" ^|findstr "\\[0-9][0-9][0-9]$" '
) do Move "%%A" "%%A\..\.."

> tree /F
Auflistung der Ordnerpfade für Volume RamDisk
Volumeseriennummer : 5566-7788
A:.
│   _.cmd
│
└───Recordfiles
    ├───230
    │       approvedpacket.pdf
    │       initialpacket.pdf
    │
    ├───232
    │       Approved packet.pdf
    │       Initialpacket.pdf
    │
    ├───343
    │       Deniedpacket.pdf
    │
    ├───Jane Frank
    └───John Smith
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...