Войти

Показать полную графическую версию : Как удалить файл с названием вроде http%3A%2F%2Fsite.ru%2F.png командой del??


Sisin
29-10-2015, 20:10
Как удалить файл с названием вроде http%3A%2F%2Fsite.ru%2F.png командой del??

Foreigner
29-10-2015, 20:31
А в чем сложность?

> cd.>"http%3A%2F%2Fsite.ru%2F.png"

> dir /b
1.ps1
6182.txt
Downloads
http%3A%2F%2Fsite.ru%2F.png
p.txt
test

> del "http%3A%2F%2Fsite.ru%2F.png"

> dir /b
1.ps1
6182.txt
Downloads
p.txt
test

Sisin
29-10-2015, 20:51
А в чем сложность? »

Попробуй сам. Тебе помог твой скрипт??? Просто %3A%2F%2F преобразуется в буквы.

Iska
29-10-2015, 21:15
Просто %3A%2F%2F преобразуется в буквы. »
Где «преобразуется»? Детально описывайте процесс.

Sisin
29-10-2015, 21:22
Где «преобразуется»? Детально описывайте процесс. »

Если написать del /q "http%3A%2F%2Fsite.ru%2F.png", то вылезет сообщение
Не удается найти httpAFFsite.ruF.png

Foreigner
29-10-2015, 21:29
Попробуй сам. »
Я и попробовал и показал вывод консоли. Или надо скриншот?
http://s1.postimg.org/3nm2l9627/image.png (http://postimage.org/)

Sisin
29-10-2015, 21:40
Я и попробовал и показал вывод консоли. Или надо скриншот? »
Странно, через саму консоль работает.

Но мне надо через bat файл, а через него не работает.

Foreigner
29-10-2015, 22:03
Sisin, Если через батник, то или удвойте знак процента или удаляйте по маске:

del http%%3A%%2F%%2Fsite.ru%%2F.png
del http*.png

Sisin
29-10-2015, 22:13
Sisin, Если через батник, то или удвойте знак процента или удаляйте по маске: »

Точно, спасибо.

Как сделать, чтобы файл finddel.bat создавался с уже удвоенным знаком процента???


@echo off
set "OperaProfile=D:\Programs\Opera1215\profile\"
(for /f "tokens=2 delims=/" %%i in ('findstr "URL" "%OperaProfile%bookmarks.adr"') do (
(echo http%%3A%%2F%%2F%%i%%2Ffavicon.)
(echo %%i.)
)) > find1.txt
dir /b "%OperaProfile%icons\*.idx" "%OperaProfile%icons\*.png" "%OperaProfile%icons\*.ico" > find2.txt
findstr /v /b /g:find1.txt find2.txt > find3.txt
(for /f %%i in (find3.txt) do echo del /f /q "%OperaProfile%icons\%%i") > finddel.bat


PS: Работает так
из файла bookmarks.adr названия сохраняются в find1.txt ,
из папки icons названия сохраняются в find2.txt ,
find1.txt вычитается из в find2.txt - получается find3.txt ,
создается finddel.bat с удалением всех файлов из find3.txt.

Foreigner
29-10-2015, 22:20
Sisin, Наверное надо учетверить %%%%

....
1>find1.txt (for /f "tokens=2 delims=/" %%i in ('findstr "URL" "%OperaProfile%bookmarks.adr"') do (

echo http%%%%3A%%%%2F%%%%2F%%i%%%%2Ffavicon.
echo %%i.

))
....

Sisin
29-10-2015, 22:26
Sisin, Наверное надо учетверить %%%% »
Как это сделать???

Foreigner
29-10-2015, 22:42
Sisin, Теперь понял. Может лучше не создавать finddel.bat, а сразу удалять? Что приблизительно получается в find3.txt?

Sisin
29-10-2015, 22:42
....
1>find1.txt (for /f "tokens=2 delims=/" %%i in ('findstr "URL" "%OperaProfile%bookmarks.adr"') do (
echo http%%%%3A%%%%2F%%%%2F%%i%%%%2Ffavicon.
echo %%i.
))
.... »

Так не сработает. Так только добавится лишний % в find1.txt

Foreigner
29-10-2015, 22:56
Sisin, попробуй так:

...

0>nul 1>finddel.bat (

for /f %%i in (find3.txt) do (

set /p="del /f /q "%OperaProfile%icons\%%i""
echo.

))




© OSzone.net 2001-2012