Попробуй это:
@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