使用批处理脚本返回文件的名称

时间:2015-03-04 21:16:44

标签: batch-file command-line cmd command-line-arguments command-prompt

我正在尝试编写一个脚本来搜索给定目录,查找以.ready_go扩展名结尾的文件,然后将它们保存(将rar保存为文件名.rar)然后转到具有相同扩展名的下一个文件并做同样的事情。

我没有幸运地为循环中找到的文件名指定变量“filename”。此变量将用于命名rar存档

到目前为止,这就是我所拥有的:

set dSource=C:\users\admin\desktop\one
set dTarget=\\filesrv1\archives
set fType=*.ready_go

for /f "delims=" %%f in ('dir /a-d /b /s "%dSource%\%fType%"') do (

    set filename=%%f
    echo %filename%
    echo %dsource%
    pause
)

它回显dsources变量很好,但不会回显文件名变量。

我也试过“echo %% f”,这也没用。

一些帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

您需要使用延迟扩展,因为您在循环内设置变量。

试试这个:

setlocal enabledelayedexpansion
set dSource=C:\users\admin\desktop\one
set dTarget=\\filesrv1\archives
set fType=*.ready_go

for /f "delims=" %%f in ('dir /a-d /b /s "%dSource%\%fType%"') do (

        set filename=%%f
        echo !filename!
        echo %dsource%
        pause
)