CMD/BAT - [решено] Удаление в строке лишних символов

Ответить
Аватара пользователя
idlazarev_alex@vk

CMD/BAT - [решено] Удаление в строке лишних символов

Сообщение idlazarev_alex@vk »

Всем салют! нужен код, который будет в пути к файлу удалять нужное количество символов справа, от файла, т.е допустим есть файл: "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
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Удаление в строке лишних символов

Сообщение Iska »

Цитата idlazarev_alex@vk:



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






Код:

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

%file:~0,-«нужное количество символов справа»%


Цитата idlazarev_alex@vk:



т.е допустим есть файл: "X:\nix\win32\start.exe" нужно получить путь "X:\nix"
CMD/BAT - [решено] Удаление в строке лишних символов




Это отнюдь не «удалять нужное количество символов справа».




Цитата idlazarev_alex@vk:



Путь \win32\start.exe будет всегда такой, но начало и диск могут быть разными.
CMD/BAT - [решено] Удаление в строке лишних символов






Код:

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

@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
Ответить

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