2016-02-20 2 views
-1

У меня есть много папок с файлами внутри, например:Пакетный файл/Powershell скрипт для почтовых файлов в папках

Folder1 с содержанием образца:

File1.txt 
File2.txt 
File3.xml 
File4.jpg 
. 
. 
. 

Результат после молнии: Folder1.zip

Folder2 с образцом:

File12.txt 
File22.txt 
File32.xml 
File42.jpg 
. 
. 

Результат после zip: Folder2.zip

Как закрепить только все файлы (не целую папку) в каждой папке с таким именем результата, как «Foldername.zip». Я нашел этот код for /d %%a in (*) do (ECHO zip -r -p "%%~na.zip" ".\%%a\*"), но он застегивает целые папки, а не только файлы.

ответ

0

Я решил проблему с помощью следующих шагов:

  1. создать пустой почтовый файл
  2. скопировать этот файл на все папки в «рабочей папке»
  3. переименовывать все почтовые файлы с именем папки
  4. добавить .txt, .jpg, .xml файлы в zip.

Это рабочий код:

@echo off 
setlocal EnableDelayedExpansion 

for /f "delims=" %%a in ('dir /A:D /B') do (
xcopy /y "Path_to_empty_zip\Test.zip" ".\%%~na\" 
rename "%%~na\Test.zip" "%%~na.zip" 
) 
for /f "delims=" %%a in ('dir /A:D /B') do ( 
cd "Path_to_working_folder\%%~na\" 
zip -r "%%~na.zip" "*.txt" 
zip -r "%%~na.zip" "*.jpg" 
zip -r "%%~na.zip" "*.xml" 
) 
pause 

я нашел несколько подобных проблем, без решения, так как опубликовать мое решение как «ответ на мой вопрос».