|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] рубка строки “c:\example\..\example.zip\..\ example.doc” в “c:\example\.\example.zip |
|
|
CMD/BAT - [решено] рубка строки “c:\example\..\example.zip\..\ example.doc” в “c:\example\.\example.zip
|
Пользователь Сообщения: 58 |
Профиль | Отправить PM | Цитировать Есть такая переменная = “c:\example\...\example.zip\...\ example.doc” Нужно обрубить строку при первом появлении имени архивного файла, имя которого может быть производным.
|
|
Отправлено: 12:50, 14-01-2008 |
Ветеран Сообщения: 878
|
Профиль | Сайт | Отправить PM | Цитировать akrav, язык какой?
|
Отправлено: 18:24, 14-01-2008 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 58
|
Профиль | Отправить PM | Цитировать желательно стандартными возможностями пакетных файлов win xp
|
Отправлено: 22:50, 14-01-2008 | #3 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать @if "%1"=="" goto usage @set filename=%1 @set findpath= @set ok= @goto start :sub3 @if "%findpath%"=="" goto first @set findpath=%findpath%\%1 @goto next :first @set findpath=%1 :next @echo %1 | find ".zip" >nul @if "%errorlevel%"=="0" goto fook @goto :EOF :fook @set ok=ok @goto :EOF :sub2 @FOR /F %1 %%i in ("%filename%") do @call :sub3 %%i @goto :EOF :sub @if "%ok%"=="ok" @goto :EOF @set v="eol=; tokens=%1* delims=\" @call :sub2 %v% @goto :EOF :start @FOR /L %%z IN (1,1,10) DO @call :sub %%z @echo %findpath% @goto :EOF :usage @echo Usage: stripname.bat filename\...\filename.zip\filename\... |
Отправлено: 14:43, 15-01-2008 | #4 |
Пользователь Сообщения: 58
|
Профиль | Отправить PM | Цитировать Спасибо большое! Все работает замечательно, раньше я использовал call только для вызова процедур, совсем забыв про возможности windows nt. Остался только один вопрос по этой теме. Что означает звездочка(*) в выражении:
Цитата hasherfrog:
|
||
Отправлено: 11:03, 16-01-2008 | #5 |
Пользователь Сообщения: 58
|
Профиль | Отправить PM | Цитировать ничего не понимаю, но наличие пробелов в исходной строке работают таке как и .zip. Т.е. в случае "c:\program files\expl\test.zip\test.doc" результат будет "c:\program", а не "c:\program files\expl\test.zip"
|
Отправлено: 15:42, 29-01-2008 | #6 |
Пользователь Сообщения: 58
|
Профиль | Отправить PM | Цитировать Появилась идея, а что если после .zip/ вставить стоп символ или комбинацию, а потом эту строку разбить в цикле разделителем = стоп символу. Но пока это все что-то не фурычит…
|
Отправлено: 16:52, 30-01-2008 | #7 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать Используйте такой код:
@rem @set filename=c:\qweqweqwe\qweqweqwe\qweqweqwe\qweqwe.zip\fsdfsd\qweqweqw\r.doc @if "%*"=="" goto usage @set filename=%* @set findpath= @set ok= @goto start :sub3 @if "%findpath%"=="" goto first @set findpath=%findpath%\%* @goto next :first @set findpath=%* :next @echo %* | find ".zip" >nul @if "%errorlevel%"=="0" goto fook @goto :EOF :fook @set ok=ok @goto :EOF :sub2 @FOR /F %1 %%i in ("%filename%") do @call :sub3 %%i @goto :EOF :sub @if "%ok%"=="ok" @goto :EOF @set v="eol=; tokens=%1* delims=\" @call :sub2 %v% @goto :EOF :start @FOR /L %%z IN (1,1,20) DO @call :sub %%z @if "%ok%"=="ok" @goto heyho @echo Pattern ".zip" is not found. @goto :EOF :heyho @echo %findpath% @goto :EOF :usage @echo Usage: stripname.bat filename\...\filename.zip\filename\... |
Отправлено: 13:13, 31-01-2008 | #8 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать хм, имхо можно короче (если я правильно понял задачу):
@Set FilePart=%~1 @Set FileName=%~2 @Set FilePart=%FilePart:!=/% @Set FileName=%FileName:!=/% @SetLocal EnableDelayedExpansion @Set FileTrim=!FileName:*%FilePart%=! @Set FileLeft=!FileName:%FileTrim%=! @SetLocal DisableDelayedExpansion @Echo %FileLeft:/=!% |
Отправлено: 15:59, 02-02-2008 | #9 |
Пользователь Сообщения: 58
|
Профиль | Отправить PM | Цитировать Уважаемый, hasherfrog! Это действительно работает. Только вот если нужно будет передать программе несколько параметров, как быть?
|
Отправлено: 21:02, 04-02-2008 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Архиваторы - [решено] [addon] 7-Zip 9.20 Final / 9.22 beta / 9.28 alpha | dimadr | Наборы обновлений для Windows XP/2003/Windows 7 | 488 | 13-06-2012 13:33 | |
[решено] Вирус зашифровал doc,xls,rar,zip,jpeg,jpg,psd | gamber | Лечение систем от вредоносных программ | 3 | 05-11-2009 16:49 | |
CMD/BAT - [решено] cmd, добавить в zip папку | robingut | Скриптовые языки администрирования Windows | 9 | 18-05-2009 13:25 | |
[решено] Архивация профиля Thunderbird программой 7-zip 4.65 | SeRGi-uS | AutoIt | 10 | 18-05-2009 10:51 | |
CMD/BAT - [решено] замена set str2=%str1:.zip/=.zip/!% глючит на пробелах?! | akrav | Скриптовые языки администрирования Windows | 5 | 12-02-2008 11:54 |
|