Заархивировать папку в пакетном режиме - PullRequest
0 голосов
/ 02 марта 2012

У меня есть текстовый файл с такими вещами, как:

%userprofile%/Desktop/FileFolder1
%userprofile%/Desktop/FileFolder2
%userprofile%/Desktop/FileFolder3

ЭСТ. и я хочу, чтобы он взял каждую из этих папок и заархивировал их. затем мне нужно, чтобы переместить почтовый индекс в определенный каталог (E: /), и я хочу, чтобы он поместил номер версии (1.0, 1.1, 1.2 и т. д.), и если на диске недостаточно места, верните ошибку, такую ​​как :

echo.Error: Not enough space on disc.

и когда это работает:

echo.Success.
pause
exit

поэтому, если я запускаю его дважды, диск должен иметь:

E:/FileFolder1 1.0.zip
E:/FileFolder2 1.0.zip
E:/FileFolder3 1.0.zip
E:/FileFolder1 1.1.zip
E:/FileFolder2 1.1.zip
E:/FileFolder3 1.1.zip

пока он не слишком большой. Так что это все, что я хочу сделать. Примечание. Я добавлю папки в текстовый файл вручную.

К вашему сведению, я действительно пытался исследовать, и все было либо безумно долго, либо мне нужно скачать какой-нибудь пакет расширений или что-то в этом роде.

РЕДАКТИРОВАТЬ: также я хочу:

echo.Error: No disc inserted.

если диск не вставлен.

1 Ответ

0 голосов
/ 02 марта 2012
  1. Чтобы перебрать содержимое текстового файла, прочитайте HELP FOR и поэкспериментируйте в командной строке с ...

    FOR /F "tokens=*" %a IN (file.txt) DO @ECHO %a
    
  2. Для настройкидобавочное имя файла, попробуйте счетчик в цикле.Прочитайте HELP SET и поэкспериментируйте с

    set cnt=0
    :again
    set /a cnt+=1
    if exist %dest%\%name%.%cnt%%ext% goto :again
    echo copy %src% %dest%\%name%.%cnt%%ext%
    
  3. , чтобы проверить, вставлен ли диск, и вы можете попробовать

    IF EXIST E:\NUL ECHO E:\ exists!
    
  4. , чтобыпроверьте, достаточно ли свободного места на диске, вы можете использовать wmic.Отфильтруйте вывод с помощью findstr, а "передайте" результат в переменную с помощью FOR.Поэкспериментируйте с ..

    FOR /F "tokens=1" %i IN ('wmic logicaldisk get name^,freespace^|findstr /I "E:"') Do @echo free = %i
    

    , а затем проверьте, подходит ли файл, сравните результат предыдущей команды с размером файла, см. HELP CALL (где объясняется модификатор ~ z) и попробуйте

     IF %free% GEQ %~z1 ECHO %1 fits in E: [%free%^>%~z1]
    

Я оставляю вам в качестве упражнения способ собрать все эти кусочки вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...