Извлечь часть переменной - PullRequest
0 голосов
/ 25 апреля 2018

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

Пока я получил это, но не могу получить строку в переменной:

set DirecoryT=%%G
FOR /R D:\LiDAR_Data\LiDAR_DATA_EBA\ %%G in (*.laz) do (
    echo Directory %DirecoryT%
    set File=%DirecoryT:~29,9%
    echo Processing file %File%
pause
)
pause

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Попробуй это:

@echo off
for /R "D:\LiDAR_Data\LiDAR_DATA_EBA\" %%G in (*.laz) do (
   echo File Extension only: "%%~xG"
   echo FileName with Extension: "%%~nxG"
   echo FileName without Extension: "%%~nG"
   echo Full path and name: "%%G"
   echo Directory to file only: "%%~pG"
   echo Drive and directory is: "%%~dpG"
 )
 pause

Обратите внимание, как мы получаем различные части строки. Чтобы узнать больше об обработке переменных, просто запустите for /? из командной строки и прочитайте справку.

Так что немного ближе к тому, что вы на самом деле хотите, основываясь на вашей попытке.

@echo off
for /R "D:\LiDAR_Data\LiDAR_DATA_EBA\" %%G in (*.laz) do (
   echo FileName "%%~nxG"
   echo Directory "%%~dpG"
   echo Processing file "%%~nxG"
 )
 pause

EDIT

В соответствии с вашим последним комментарием, чтобы увидеть только последнюю папку, где файл существует:

@echo off
for /R "D:\LiDAR_Data\LiDAR_DATA_EBA\" %%G in (*.laz) do (
   echo FileName "%%~nxG"
   echo Directory "%%~dpG"
   echo Processing file "%%~nxG"
  for %%i in ("%%~dpG\.") do echo Last Folder "%%~nxi"
 )
pause
0 голосов
/ 25 апреля 2018

Это должно сработать

for %%a in ("%pathToFile%") do set "newvariable=%%~na"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...