CMD/BAT - [решено] Удаление файлов из архива

Аватара пользователя
VokaMut

CMD/BAT - [решено] Удаление файлов из архива

Сообщение VokaMut »

Здравствуйте.

Возникла проблема, есть код который архивирует папку и помещает этот архив в другую папку:





Код:

Код: Выделить всё

@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"

Это естественно не работает.

Как удалить файл из архива? помогите пожалуйста.



И еще вопрос:

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



Заранее спасибо.
Аватара пользователя
Molchune

Re: CMD/BAT - [решено] Удаление файлов из архива

Сообщение Molchune »

ну например вот так вот



Код:

Код: Выделить всё

@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%\*.*"
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Удаление файлов из архива

Сообщение Iska »

Спасибо, помогло, а , что на счет:


Цитата VokaMut:



И еще вопрос:

Можно ли сделать так, что бы архив имел имя, которое находится в буфере обмена?
CMD/BAT - [решено] Удаление файлов из архива
Аватара пользователя
VokaMut

Re: CMD/BAT - [решено] Удаление файлов из архива

Сообщение VokaMut »

Цитата VokaMut:



Можно ли сделать так, что бы архив имел имя, которое находится в буфере обмена?
CMD/BAT - [решено] Удаление файлов из архива




Можно:



Код:

Код: Выделить всё

@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
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Удаление файлов из архива

Сообщение Iska »

Цитата 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
CMD/BAT - [решено] Удаление файлов из архива




Спасибо, но я пошел по более простому решению с помощью 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%\*.*"

Изображение
Аватара пользователя
VokaMut

Re: CMD/BAT - [решено] Удаление файлов из архива

Сообщение VokaMut »

Цитата VokaMut:



но я пошел по более простому решению с помощью GetChip.exe:
CMD/BAT - [решено] Удаление файлов из архива




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

Re: CMD/BAT - [решено] Удаление файлов из архива

Сообщение Iska »

Цитата Iska:



«getclip.exe» — Вы хотели сказать… Да, это более простой, но и более длинный путь. Зачем только делать промежуточное сохранение в файл?! Разве нельзя сразу разбирать вывод утилиты?
CMD/BAT - [решено] Удаление файлов из архива




Для меня проще он потому, что понятно как "дваждыдва", но и ваш код сохранил и закомментировал в том же bat-нике, завтра и с ним поковыряюсь)
Аватара пользователя
VokaMut

Re: CMD/BAT - [решено] Удаление файлов из архива

Сообщение VokaMut »

Цитата 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





Еще такая проблема возникла, при копировании текста с воскл. знаками, они(воскл. знаки) не копируются
Аватара пользователя
VokaMut

Re: CMD/BAT - [решено] Удаление файлов из архива

Сообщение VokaMut »

Цитата 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





Еще такая проблема возникла, при копировании текста с воскл. знаками, они(воскл. знаки) не копируются
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Удаление файлов из архива

Сообщение Iska »

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



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

Вернуться в «Скриптовые языки администрирования Windows»