Jag försöker skapa en bat-fil som tar alla .zip filer i en viss katalog och packar upp varje zip-fil till en ny katalog som heter samma sak som zip-filen.
Såhär långt har jag kommit. Problemet är att det skapas en hel katalogstruktur i unzip-katalogen. Går det att plocka ut själva filnamnet ur variabeln %%f ?? (som verkar innehålla hela sökvägen)
for %%f in (D:\test\*.zip) do C:\Program\WinZip\WINZIP32.EXE -e %%f D:\test\unzip\%%f\
hmm... vet inte riktigt hur det där funkar, men rent allmänt så i en batchfil om du har en variabel t ex %1 så om du stoppar in ett filnamn så hamnar det i variabeln, t ex:
skriv
@echo %1
och spara som t ex test.bat
om du sedan provar med
test variabel
så kommer variabeln att skrivas ut på skärmen.
Jag tror att din variabel helt enkelt blir fel och frågan är istället vad som händer innan din for-sats där?! ...hur kommer hela sökvägen till då?
Sökvägen är statisk. Min kodrad utgör hela filen.
Variabeln %%f verkar innehålla hela filnamnet inklusive sökväg. Filerna packas upp till test\unzip\. men inte i test\unzip\filnamn, utan i test\unzip\d_\hela_sökvägen_\filnamn.zip
Nu kom nästa problem.
Jag vill kunna komprimera alla mappar i en viss katalog:
for %%f in (D:\zippa\) do C:\Program\WinZip\WINZIP32.EXE -a -r %%f.zip %%f
Winzip klagar på att den inte hittar några filer. Sen hamnar alla filer i alla underkataloger i en zip-fil.
Jag vill att varje mapp i katalogen zippa ska komprimeras till en egen zip.
Det verkar inte som att for-slingan kan loopa genom en uppsättning med kataloger. Bara filer...
Varför inte installera WinRAR, RAR för DOS följer då med automatisk. Använder WinRAR för att zippa med själv :) Men ok, kör du bara zip så är det väl klart det är onödigt kanske.