Как получить список файлов и папок без части в скобках - PullRequest
0 голосов
/ 19 октября 2019

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

Когда я использую dir / bi, получаем:

Lenovo 48394 Dual (48437873) Red
Lenoxx smoth 3030 (1545308)
Logitech razer 220 (04948393)
Microsoft V-3000x (4837483449) Black

Но мне нужно:

Lenovo 48394 Dual Red
Lenoxx smoth 3030
Logitech razer 220
Microsoft V-3000x Black

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 27 октября 2019

Чтобы просто удалить (.....) деталь:

@echo off
for /f "tokens=1,3 delims=()" %%a in ('dir /b') do echo %%a%%b

Если вас беспокоят два пробела:

@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,3 delims=()" %%a in ('dir /b') do (
  set "line=%%a%%b"
  echo !line:  = !
)
0 голосов
/ 27 октября 2019

  • Когда необходимо получить скобки (??), удалив только скобки:
@echo off & setlocal enabledelayedexpansion & title %~n0

for /f ^tokens^=* %%i in ('dir /b "*.*" ^|find /v ".cmd"')do call :^[ "%%~i" && echo=!_str!
exit /b 

:^[
set _str=%~1
for /f ^tokens^=* %%S in ('cmd /c set /p "=%_str:)=%"^<nul')do call set _str=%%S
for /f ^tokens^=* %%S in ('cmd /c set /p "=%_str:(=%"^<nul')do call set _str=%%S
exit /b 

Я могуПредлагаем вам узнать unxutils, это некоторые исполняемые файлы linux, уже перенесенные на платформу Windows, включая sed, less, cat, atil и т. д.

Unxutils доступен на этом сайте: http://unxutils.sourceforge.net

Итак, попробуйте ответ @Bragnikita (проверено) в цикле for!

for /f ^tokens^=* %i in ('dir /b "*.*" ^|find /v ".cmd"')do @echo/%i | sed -e "s/(.*)//g"

0 голосов
/ 19 октября 2019

Это не совсем решение Win CMD, но если вы можете использовать подсистему Windows для Linux, будет работать утилита sed с регулярным выражением замены.

sed -e 's/(.*)//g' input_file

эта команда считывает входные данные из файла input_file ивыводит результат на стандартный вывод. Регулярное выражение (.*) сопоставляет любой текст между скобками и самой скобкой

UPD: похоже, вы можете использовать Windows Powershell. См. Этот ответ

...