Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление файлов из архива

Ответить
Настройки темы
CMD/BAT - [решено] Удаление файлов из архива

Пользователь


Сообщения: 133
Благодарности: 2

Профиль | Отправить PM | Цитировать


Изменения
Автор: VokaMut
Дата: 02-10-2012
Здравствуйте.
Возникла проблема, есть код который архивирует папку и помещает этот архив в другую папку:

Код: Выделить весь код
@cmdow @ /HID
::@echo off
set SrcPath=D:\Arch\1
set DestPath=D:\Arch
set d=%DATE%
"C:\PROGRA~1\WinRAR\rar.exe" a -m5 -s -y -ep1 -r -ag  "%DestPath%\%d%.rar" "%SrcPath%\*.*"
Но мне нужно, что бы после архивации он удалял в архиве файл 1.txt(к примеру).
Моё решение:

Код: Выделить весь код
"C:\PROGRA~1\WinRAR\rar.exe" d -y "%DestPath%\%d%.rar" "\1.txt"
Это естественно не работает.
Как удалить файл из архива? помогите пожалуйста.

И еще вопрос:
Можно ли сделать так, что бы архив имел имя, которое находится в буфере обмена?

Заранее спасибо.

Отправлено: 13:26, 02-10-2012

 

Старожил


Сообщения: 280
Благодарности: 72

Профиль | Отправить PM | Цитировать


ну например вот так вот
Код: Выделить весь код
@cmdow @ /HID
::@echo off
set SrcPath=D:\Arch\1
set DestPath=D:\Arch
set d=%DATE%
"C:\PROGRA~1\WinRAR\rar.exe" a -m5 -s -y -ep1 -r -ag -x*1.txt  "%DestPath%\%d%.rar" "%SrcPath%\*.*"
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:09, 02-10-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 133
Благодарности: 2

Профиль | Отправить PM | Цитировать


Спасибо, помогло, а , что на счет:
Цитата VokaMut:
И еще вопрос:
Можно ли сделать так, что бы архив имел имя, которое находится в буфере обмена? »

Последний раз редактировалось VokaMut, 02-10-2012 в 14:55.


Отправлено: 14:37, 02-10-2012 | #3


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата VokaMut:
Можно ли сделать так, что бы архив имел имя, которое находится в буфере обмена? »
Можно:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=" %%i in (
	`mshta.exe "javascript:var s=clipboardData.getData('text');if(s)new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(s);close();" 1 ^| more`
) do if not defined sClipboard set sClipboard=%%i

if defined sClipboard echo [%sClipboard%]

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:07, 02-10-2012 | #4


Пользователь


Сообщения: 133
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Iska:
Можно:
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq delims=" %%i in (
`mshta.exe "javascript:var s=clipboardData.getData('text');if(s)new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(s);close();" 1 ^| more`
) do if not defined sClipboard set sClipboard=%%i
if defined sClipboard echo [%sClipboard%]
endlocal
exit /b 0 »
Спасибо, но я пошел по более простому решению с помощью GetChip.exe:
Код: Выделить весь код
Chcp 1251
set SrcPath=D:\1
set DestPath=D:\2

getclip.exe>1.txt ::записываем текст из буфера в файл
Set file=1.txt 
For /F "usebackq tokens=* delims=" %%i In ("%file%") Do Set body=%%i ::берем переменную из файла

"C:\PROGRA~1\WinRAR\rar.exe" a -m5 -s -y -ep1 -r -x*"123.txt" "%DestPath%\%body%.rar" "%SrcPath%\*.*"

Отправлено: 19:45, 02-10-2012 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата VokaMut:
но я пошел по более простому решению с помощью GetChip.exe: »
«getclip.exe» — Вы хотели сказать… Да, это более простой, но и более длинный путь. Зачем только делать промежуточное сохранение в файл?! Разве нельзя сразу разбирать вывод утилиты?
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:23, 02-10-2012 | #6


Пользователь


Сообщения: 133
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Iska:
«getclip.exe» — Вы хотели сказать… Да, это более простой, но и более длинный путь. Зачем только делать промежуточное сохранение в файл?! Разве нельзя сразу разбирать вывод утилиты? »
Для меня проще он потому, что понятно как "дваждыдва", но и ваш код сохранил и закомментировал в том же bat-нике, завтра и с ним поковыряюсь)

Отправлено: 22:34, 02-10-2012 | #7


Пользователь


Сообщения: 133
Благодарности: 2

Профиль | Отправить PM | Цитировать


Цитата Iska:
Цитата VokaMut:
Код:
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq delims=" %%i in (
 `mshta.exe "javascript:var s=clipboardData.getData('text');if(s)new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(s);close();" 1 ^| more`
) do if not defined sClipboard set sClipboard=%%i
if defined sClipboard echo [%sClipboard%]
endlocal
exit /b 0
Еще такая проблема возникла, при копировании текста с воскл. знаками, они(воскл. знаки) не копируются

Отправлено: 21:00, 03-11-2012 | #8


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


VokaMut, очевидно, что не «не копируются», а не «вставляются»: этот специальный символ имеет особое значение при использовании параметра «enabledelayedexpansion». Та же проблема может быть и с некоторыми другими символами, имеющими специальное назначение для командного процессора. В общем случае эта проблема не решаема: даже если извратиться и поместить их в переменную окружения — всё равно могут быть проблемы в дальнейшем — при её использовании.

Выход — целиком переходить на использование WSH.

Отправлено: 00:28, 04-11-2012 | #9


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


чтоб не создавать новую тему с таким же названием пишу тут:
в общем есть уже готовые архивы вида 1cyyyy_mm_dd.rar (год, месяц, день)
каким образом удалить из них определенные файлы и папки (сохранив оригинальное название и дату создания файла)? хелп

Отправлено: 13:38, 21-12-2012 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Удаление файлов из архива

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Удаление архива за вчерашнюю дату pavelvdo Скриптовые языки администрирования Windows 5 06-05-2013 18:11
Любой язык - [решено] Распаковка-обновление-удаление архива Добрых_Дел_Мастер Скриптовые языки администрирования Windows 9 22-09-2012 12:05
Установка - [решено] Установка программ ехе и запуск ехе файлов из архива. Berzerker Microsoft Windows 7 6 25-05-2010 22:33
CMD/BAT - розархивация файлов по маске с архива отсортированого по датах VitHAK Скриптовые языки администрирования Windows 1 28-12-2009 11:07
Разное - Восстановление медиа файлов из испорченного архива illusionmgs Microsoft Windows 2000/XP 11 22-03-2009 20:59




 
Переход