2016-04-18 8 views
1

Ich muss Cab-Datei für verschachtelte Ordner erstellen.Makecab Leerzeichen

so sreate ich DDF-Datei, die aussieht:

.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 

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

jetzt in der Fledermaus-Datei ich die Liste aller Dateien in der DDF-Datei einfügen:

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 \ 

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

wenn ich laufe:

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

seine Rückkehr mich:

unerwarteter Text: eine Datei

alle Dateien, den Raum dort Namen machen Problem haben/ , was soll ich tun?

+0

so wollen Sie ein ganzes Verzeichnis Cab? – npocmaka

+1

können Sie versuchen mit 'for/f" delims = "%% a IN ('dir/a: -d/b 2 ^> nul') echo %% ~ fa >>"% pathDdfFile% "' (doppelte Anführungszeichen um den Dateipfad) – npocmaka

+0

Danke, aber die DDF-Datei, die ich erstelle, sieht gut aus, das Problem ist in Dateien, die Platz im Namen haben wie: .Set DestinationDir = Mydir c: \ tmp 1 2 3.dll dann Ich bekomme FEHLER: Unerwarteter Text: 3.dll – liraz

Antwort

0

können Sie check this script, die ein Verzeichnis recursively.Example cab wird:

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

Sie können dies auch überprüfen question

Verwandte Themen