 |
|
idlazarev_alex@vk |
05-10-2014 15:37 2411282 |
Удаление в строке лишних символов
Всем салют! нужен код, который будет в пути к файлу удалять нужное количество символов справа, от файла, т.е допустим есть файл: "X:\nix\win32\start.exe" нужно получить путь "X:\nix", есть код, но как его преобразовать, не могу понять. Путь \win32\start.exe будет всегда такой, но начало и диск могут быть разными.
Код:
SetLocal EnableDelayedExpansion
Set file=e:\Temp 1\temp.txt
Set newfile=e:\Temp 1\newtemp.txt
(For /F "tokens=* usebackq delims=" %%a In ("%file%") Do (
Set ta=%%a
Echo !ta:~0,-1!
))>"%newfile%"
Ещё есть код, удаляет пробелы и другие символы подряд, только не могу понять, как подставить:
Код:
::Удаляет справа лишние пробелы, или другие подряд идущие символы, заданные переменной %2 (Symbol)
:RTrimSpaces %1-in.String %2-in.Symbol %3-out.String.Variable
Set "%~3="
Set "_String=%~1"
for /L %%C in (0,1,8184) do (
if "!_String:~%%C,1!"=="" Goto ex_RTrimSpaces
if "!_String:~%%C,1!"=="%~2" (if not Defined LastSpace (Set nSpace=%%C& Set LastSpace=true)) else (Set LastSpace=& Set nSpace=)
)
:ex_RTrimSpaces
if Defined nSpace (Set "%~3=!_String:~0,%nSpace%!") else (Set "%~3=!_String!")
Exit /B
|
Цитата:
Цитата idlazarev_alex@vk
который будет в пути к файлу удалять нужное количество символов справа, »
|
Код:
%file:~0,-«нужное количество символов справа»%
Цитата:
Цитата idlazarev_alex@vk
т.е допустим есть файл: "X:\nix\win32\start.exe" нужно получить путь "X:\nix" »
|
Это отнюдь не «удалять нужное количество символов справа».
Цитата:
Цитата idlazarev_alex@vk
Путь \win32\start.exe будет всегда такой, но начало и диск могут быть разными. »
|
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
set sPath=X:\bla-bla-bla\bla-bla-bla\nix\win32\start.exe
set sPartPath=\win32\start.exe
echo !sPath:%sPartPath%=!
endlocal
exit /b 0
|
idlazarev_alex@vk |
05-10-2014 16:21 2411316 |
Iska, спасибо!
|
Время: 00:07.
© OSzone.net 2001-