2016-04-18 4 views
1

Мне нужно создать файл cab для вложенной папки.Белые пробелы Makecab

поэтому я sreate DDF файл, который выглядит:

.OPTION EXPLICIT ; Will Generate errors for mistakes 
.Set Compress=on 
.Set Cabinet=on 

; Destination Folder 
.Set DiskDirectory1= my Directory 


; File name for the new cab file 
.Set CabinetNameTemplate=Sample.cab 

//---------------- 

Теперь в файле летучей мыши я вставить список всех файлов в файл DDF:

cd %folderDir% 

@echo off 
call :treeProcess 
goto :eos 


:treeProcess 

for /f "delims=" %%a IN ('dir /a:-d/b 2^>nul ') do echo %%~fa >>%pathDdfFile% 

for /D %%d in (*) do (
    echo .Set DestinationDir=%%d >>%pathDdfFile% 
cd %%d 
    call :treeProcess 
    cd .. 
) 
goto :eof 

:eos 

cd \ 

//--------------- 

, когда я бегу:

makecab /F %pathDdfFile% /L C:\temp 

его возвращение:

неожиданный текст: один файл

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

+0

так что вы хотите в кабину весь каталог? – npocmaka

+1

вы можете попробовать с 'for/f 'delims =" %% a IN (' dir/a: -d/b 2 ^> nul ') сделать echo %% ~ fa >> "% pathDdfFile%" '(двойные кавычки вокруг пути к файлу) – npocmaka

+0

Спасибо, но файл ddf, который я создаю, выглядит отлично, проблема заключается в файлах с пробелом в имени, например: . Установить DestinationDir = Mydir c: \ tmp 1 2 3.dll затем Я получаю ОШИБКА: Неожиданный текст: 3.dll – liraz

ответ

0

check this script Вы можете, что будет кабине каталога recursively.Example:

call cabdir.bat "C:\someDir" some.cab 

Вы также можете проверить это question

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