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

时间:2017-03-06 08:07:15

标签: batch-file

下面的代码工作正常。这将输出“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

1 个答案:

答案 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