2017-02-06 10 views
0

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

Top-Folder 
    -Bob 
    --Folder-1 
    -Steve 
    --Folder-1 
    --Folder-2 
    -Tim 
    --Folder-1 

Из Top-папка, я хотел бы, чтобы запустить пакетный скрипт, который индивидуально застегивает каждый из вложенных папок. Итак, в приведенном выше примере у меня было бы четыре ZIP-файла для каждой из этих подпапок. Они будут располагаться рядом с оригинальными папками.

folder-1.zip (от Боба)

folder-1.zip (от Steve)

folder-2.zip (от Steve)

folder-1.zip (от Tim)

меня это до сих пор:

if exist list.txt del list.txt 
    if exist subfolders.txt del subfolders.txt 
    REM create list of all users (top folders) 
    dir "F:\Top-Folder" /AD /B >list.txt 
    REM create list of all subfolders 
    for /F "delims=" %%i in (list.txt) do dir %%i /AD /S /B >> subfolders.txt 
    REM now you have all subfolders in subfolders.txt so you can zip them one by one 
    for /F "delims=" %%X in (subfolders.txt) do "c:\Program Files\7-Zip\7z.exe" a "%%X.zip" "%%X\" 

С простыми именами папок тестов это успешно. Однако с моими настоящими именами папок, в то время как list.txt генерируется с именами верхних папок, subfolders.txt не создается, а ergo не может быть.

Примеры реальной структуры папок/имен:

2005-05-11 - Tappehallerne, Копенгаген/[AUD # 1] MD (M) - CDR (1)

2005-05-11 - Tappehallerne, Copenhagen/[PRO # 1b] HDTV

Что мне нужно изменить, чтобы имена подпапок были записаны во второй текстовый файл для остальной части исполняемого скрипта?

ответ

1
for /F "delims=" %%i in (list.txt) do dir "%%i" /AD /S /B >> subfolders.txt 

Вы должны «экранирует имя» в противном случае dir ищет «цитаты» и «» и «имя»

 Смежные вопросы

  • Нет связанных вопросов^_^