【发布时间】:2015-12-16 20:31:22
【问题描述】:
我正在尝试创建一个批处理文件来搜索 .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 文件。
【问题讨论】:
-
为什么不直接
move %%i?我猜%i%在你的例子中只是一个错字?如果所有这些都不适用:请说明您的具体问题,目前您只是陈述事实而不是提问。 -
著名的delayed expansion trap 的另一个受害者...(当然还有那个错字,@Marged 指出)
-
设置 "MyPath=%%i" (周围有 qoutes 和
%更正),所以任何尾随空格将不再成为MyPath值的一部分... -
在代码块中小心使用
:: Comment,在那里使用rem comment更安全。
标签: variables batch-file command-line