Пакетный файл для размещения файлов по имени в соответствующих папках - PullRequest
0 голосов
/ 25 января 2020

У меня есть следующие папки:

Apple_folder
Pear_folder
Tomatoes_folder

В пределах Apple_folder у меня есть следующие файлы:

Extracted-Apple_1.txt
Extracted-Apple_2.txt
Extracted-Pear_1.txt
Extracted-Pear_2.txt
Extracted-Apple_3.txt
Extracted-Tomatoes_1.txt

Как мне перемещаться Extracted-Pear_1.txt, Extracted-Pear_2.txt, Extracted-Tomatoes_1.txt в соответствующие папки, т.е. сохраните имя файла, содержащее apple в Apple_folder, et c.

Ожидаемое Apple_folder содержимое:

Extracted-Apple_1.txt
Extracted-Apple_2.txt
Extracted-Apple_3.txt

Ожидаемое Pear_folder содержание:

Extracted-Pear_1.txt
Extracted-Pear_2.txt

Ожидаемое Tomatoes_folder содержание:

Extracted-Tomatoes_1.txt

Я все еще новичок в пакетном сценарии, поэтому не знаете, как поступить?

Следующий скрипт не работал.

setlocal enabledelayedexpansion
set /A counter=0

@echo off
for %%a in (*.txt) do (
    for /f "tokens=2 delims=-_" %%f in ("%%a") do (
        set /A counter+=1 
        MOVE "%%a" "C:\Users\ADMIN\Documents\TESTING\Batch_script\%%f_folder\Extracted-%%~nf_moved__!counter!.txt"
    )
)
pause

Ответы [ 2 ]

0 голосов
/ 29 января 2020

Я докопался до этого. Это решение, которое я искал. Он распознает имена файлов и проверит, находятся ли они в нужной папке, если нет, переместит их в нужную папку:

setlocal enabledelayedexpansion

for /R "C:\Users\Admin\Documents\TESTING\Batch_script\" %%G IN (*.txt) do (
    for /F "tokens=7,12,13 delims=\-_." %%a in ("!%%G!") do (
            set /A counter+=1 
IF NOT %%a==%%b (MOVE "%%G" "C:\Users\ADMIN\Documents\TESTING\Batch_script\%%b_folder\MSG-Extracted-%%b_%%c_moved_!counter!.txt")
    )
)
0 голосов
/ 25 января 2020

Используйте этот скрипт для этого:

@Echo Off
Pushd "Parent folder Location of Apple_Folder"
For /F "Tokens=2,3 Delims=-_" %%a in ('dir /b "Full path of Apple_Folder"') Do (
  If Not "%%a"=="Apple" (
    Move "Full path of Apple_Folder\Extracted-%%a_%%b.txt" "Full path of %%a_Folder\"
  )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...