我使用此代码,即拖动和放大将文件夹拖放到.bat
文件:
set FILE_path="%~1"
for /f "usebackq" %%i in (%FILE_path%) do (
set basename="%%~ni"
)
echo %basename%
pause 99
它应显示文件夹/文件名,但显示错误
系统无法找到该文件。
如果我使用:
for /F "" %%i in (%FILE_path%) do @SET basename=%%~ni
然后当文件/文件夹包含空格时出现问题。 (它不会在第一个空格后输出名称。)
答案 0 :(得分:0)
找到解决方案:
for /f "delims=" %%i in (%FILE_path%) do @SET basename="%%~ni"
echo %basename%
答案 1 :(得分:0)
为什么不使用它:
@If Not "%~1"=="" (Echo %~n1
Timeout 99)
根据您提问中的代码和您提供的答案,您的版本看起来更像是这样:
@Echo Off
Set "FilePath=%~1"
For %%A In ("%FilePath%") Do Set "BaseName=%%~nA"
Echo=%BaseName%
Timeout 99