idlazarev_alex@vk
05-10-2014, 15:37
Всем салют! нужен код, который будет в пути к файлу удалять нужное количество символов справа, от файла, т.е допустим есть файл: "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
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