Batch file 我想设置一个变量来只存储文件名

Batch file 我想设置一个变量来只存储文件名,batch-file,Batch File,下面的代码工作正常。这将输出显示“TF-IPHB160240_JATS” 我想设置一个变量来存储文件名。下面是我尝试过的,但不起作用 @echo off set file="D:\Backup\12-14-2016\tool\TF-IPHB160240_JATS.xml" FOR %%i in ("%file%") do ( set view=%%~ni echo %view% pause 尽管代码中缺少括号,但我认为您正在尝试在for循环中回显变量。为此,您需要使用延迟扩展 但是,没有必要在

下面的代码工作正常。这将输出显示“TF-IPHB160240_JATS”

我想设置一个变量来存储文件名。下面是我尝试过的,但不起作用

@echo off
set file="D:\Backup\12-14-2016\tool\TF-IPHB160240_JATS.xml"
FOR %%i in ("%file%") do (
set view=%%~ni
echo %view%
pause

尽管代码中缺少括号,但我认为您正在尝试在for循环中回显变量。为此,您需要使用延迟扩展

但是,没有必要在循环中回显它

@Echo关闭
设置“file=D:\Backup\12-14-2016\tool\TF-IPHB160240\u JATS.xml”
对于(“%file%”)中的%%i,请设置“view=%%~ni”
Echo=%view%
暂停
这里使用的是延迟扩展

@Echo关闭
设置“file=D:\Backup\12-14-2016\tool\TF-IPHB160240\u JATS.xml”
对于(“%file%”)中的%%i,请执行(设置“view=%%~ni”
SetLocal EnableDelayedExpansion
Echo=!查看!
(本地)
暂停
@echo off
set file="D:\Backup\12-14-2016\tool\TF-IPHB160240_JATS.xml"
FOR %%i in ("%file%") do (
set view=%%~ni
echo %view%
pause