Добавьте префикс к каждому имени файла в cmd и перечислите их - PullRequest
0 голосов
/ 06 марта 2019

Команда ниже добавляет префикс ко всем файлам и перечисляет их в out.txt.Но

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

Возможно ли желаемый вывод в cmdсам?Будем благодарны за любую помощь.

Команда:

    for /f %f in ('dir /b /s *.*') do echo dt obsolete %f >> out.txt

Токовый выход:

dt obsolete D:\workdir\src1\drafttest2\python 
dt obsolete D:\workdir\src1\drafttest2\draftingdimension\ind 
dt obsolete D:\workdir\src1\drafttest2\draftingdimension\ind\GB_005.seq 
dt obsolete D:\workdir\src1\drafttest2\draftingdimension\ind\GB_005_py.py 

Желаемый вывод:

dt obsolete GB_005.seq 
dt obsolete GB_005_py.py

1 Ответ

1 голос
/ 06 марта 2019

Вы можете попробовать это из cmdline:

for /f %f in ('dir /b /s *.*') do echo dt "obsolete_%~nxf">>out.txt

или, если вы хотите указать путь:

for /f %f in ('dir /b /s *.*') do echo dt "%~dpfobsolete_%~nxf">>out.txt

Не уверен, что вы планируете сделать это только для файлов или файлов и папок, но если только для файлов, то:

for /f %f in ('dir /b /s /a-d *.*') do echo dt "%~dpfobsolete_%~nxf">>out.txt

Чтобы запустить вышеизложенное из командного файла, вам нужно удвоить все %

Как уже упоминалось в моем комментарии, из cmd.exe запустите for /?, чтобы увидеть всю необходимую вам помощь по расширению переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...