Как убрать префиксы в строках в командной строке Windows? - PullRequest
4 голосов
/ 13 июня 2011

Предположим, я хотел отобразить каждый исполняемый файл в папке% programfiles%

cd %programfiles%
for /r . %i in (*.exe) do echo "%~i"

, но это дает

c:\program files\program1\program1.exe
c:\program files\program2\program2.exe

, и я хочу

program1\program1.exe
program2\program2.exe

Какубрать эти префиксы?

Ответы [ 2 ]

7 голосов
/ 13 июня 2011

Вы можете использовать функцию замены строки в пакете

cd %programfiles%
set "prefix=%programfiles%"
setlocal DisableDelayedExpansion
for /r . %i in (*.exe) do (
  set "progPath=%~i"
  setlocal EnableDelayedExpansion
  set "progPath=!progPath:%prefix%=!"
  echo !progPath!
  endlocal
)
4 голосов
/ 13 июня 2011

Поместите это в командный файл и запустите, это должно сделать работу.

@echo off
setlocal ENABLEDELAYEDEXPANSION
cd %programfiles%
for /r . %%i in (*.exe) do (
    set pth=%%~fi
    set val=!pth:%cd%\=!
    echo !val!
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...