2015-02-08 5 views
3

Я новичок в программировании, благодаря новой задаче, которую предоставил мой босс. Я пытаюсь запустить пакетный файл, чтобы поместить несколько файлов в папку отдельно. Итак, я хочу file1.txt для zip to file1.zip и так далее для других файлов.Пакетный файл в Zip-файл

У меня есть только следующий код:

for /f "tokens=*" %f in ('dir /b *.DAT') do "c:\Program Files\7-Zip\7z.exe" a "%f.7z" "%f" 

Мой вопрос: Когда я запускаю его на ЦМД после навигации в целевую папку, она работает, но когда я храню его в пакетный файл и запустить его из целевая папка, она не будет работать.

Пожалуйста, помогите мне определить, что и где мне нужно внести изменения в мой код.

С уважением AK

+0

Вы уже рассмотрели «трудную часть» - найти инструмент командной строки для .zip файла: '' c: \ Program Files \ 7-Zip \ 7z.exe ". Q: Действительно ли ваш .bat-файл работает в том же каталоге, что и ваши * .dat-файлы? Если нет, вы можете поместить 'cd \ my directory' в начало файла .bat. – FoggyDay

+0

Да, командный файл находится в том же каталоге. –

ответ

1

Ваш код кажется нормально. Проблема в том, что при запуске в пакетном файле вам нужно добавить дополнительную метку%.

В пакетном попробовать:

for /f "tokens=*" %%f in ('dir /b *.DAT') do "c:\Program Files\7-Zip\7z.exe" a "%%f.7z" "%%f" 
3

пакетного файла, метапеременная (петля-регуляторе) требует % быть в два раза, поэтому замените каждый %f с %%f, когда вы имеете в виду the loop-control variable «F» `

+0

Спасибо Magoo. Это сработало. :-) –

+1

Привет @Magoo, я просто хотел узнать, могу ли я немного изменить мой код, чтобы мой файл «abc.txt» был переименован в abc.zip вместо abc.txt.zip? Буду признателен за вашу помощь в этом. Вот код: @echo от SETLOCAL ENABLEDELAYEDEXPANSION SET старый = abc_1 SET новый = ABC для/ф "токенов = *" %% е в ('реж/б * .dat') делать ( SET новое_имя =% % f SET newname =! newname:% old% =% new%! move "%% f" "! newname!" ) для/f "tokens = *" %% f in ('dir/b * .DAT ') делать "c: \ Program Files \ 7-Zip \ 7z.exe" a "%% f.7z" "%% f" –

+0

, если ваше имя файла находится в '%% f', тогда' %% ~ nf' даст вам имя-часть файла и '%% ~ xf' часть расширения, поэтому целевое имя' %% ~ nf.zip' будет помещать имя-часть ('abc' из' abc. txt') вместе с '.zip' – Magoo

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