如何将路径设为变量,然后移动该文件

时间:2015-12-16 20:31:23

标签: variables batch-file command-line

我正在尝试创建一个批处理文件,用于搜索.pst文件,然后将这些文件移动到特定位置。到目前为止,这就是我所拥有的。请帮忙。

cd \   
setlocal enabledelayedexpansion 

for /r %%i in (*.pst) do (   
::echo %%~i

set MyPath=%i%   
move "%MyPath%" "C:\users\zack.vigrass\desktop\"
)

endlocal

PAUSE

编辑:我没有意识到我没有问一个问题。我主要问为什么它返回一个空白文件而不是预期的.pst文件。

1 个答案:

答案 0 :(得分:2)

set MyPath=%i%   

mypath设置为控制for循环(%%i的元变量的内容,但会将其设置为{{1}的内容这是一个普通的环境变量,很可能是未定义的,因此 nothing

额外问题:该行的尾随空格将在指定的值中包含

因此i将获得(几个空格)的值

mypath

不幸的是,批处理在一个块(一系列带括号的语句)中用任意move "%MyPath%" "C:\users\zack.vigrass\desktop\" 的值替换了遇到%var%(在这种情况下)时该变量的值。

因为遇到for时,for未定义,结果将是

mypath

在这种情况下似乎没有理由将值转移到move "" "C:\users\zack.vigrass\desktop\"

mypath

应该适合你。