下面的代码工作正常。这将输出“TF-IPHB160240_JATS”。
@echo off
set file="D:\Backup\12-14-2016\tool\TF-IPHB160240_JATS.xml"
FOR %%i in ("%file%") do echo %%~ni
我想设置一个变量来存储文件名。以下是我尝试过的但是没有用。
@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
答案 0 :(得分:0)
虽然你的代码中缺少一个括号,但我认为你试图在for循环中回显变量。为此,您需要使用延迟扩展。
然而,没有必要在循环中回应它
@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
这里使用延迟扩展
@Echo off
Set "file=D:\Backup\12-14-2016\tool\TF-IPHB160240_JATS.xml"
For %%i In ("%file%") Do (Set "view=%%~ni"
SetLocal EnableDelayedExpansion
Echo=!view!
EndLocal)
Pause