用于从文件夹移动第一个文档的批处理文件

时间:2014-03-22 12:09:02

标签: windows batch-file

我需要创建一个批处理文件,该文件应该将第一个文档从提供的源位置移动到另一个位置。

考虑源文件夹有10个文件我只想将任何一个文件从10移动到另一个路径。我还需要将移动的文件名存储在临时变量中。 我尝试使用下面的move命令

MOVE "C:\temporaryfolder\*.txt" "C:\Backup"

但是我收到一个错误,因为多个文件无法复制到单个文件中。

请在这种情况下提供帮助。

2 个答案:

答案 0 :(得分:1)

set var=""&for %a in (c:\temp\*.txt) do if not defined var set "var=%a"&move "c:\temp\%a" "c:\backup\"

作为直接来自提示的命令。

要用作批处理文件行,请将每个%更改为%%

filename-moved显示在变量%var%

答案 1 :(得分:1)

我假设" C:\ Backup"表示文件夹,而不是文件。在将文件移动到文件夹之前,该文件夹必须存在。如果目标文件夹尚不存在,您将收到报告的错误。

此外,如果源掩码与多个文件匹配,则无法限制MOVE命令仅移动一个文件。解决方案是使用FOR循环,其代码限制MOVE的数量。我使用GOTO在第一次移动后突破,或者您可以使用IF DEFINED,因为Magoo已经采取措施来限制所采取的操作数量。

@echo off
setlocal
set "source=C:\temporaryfolder"
set "target=C:\Backup"
if not exist "%target%\" md "%target%"
for %%F in ("%source%\*.txt") do (
  set "file=%%~nxF"
  move "%%F" "%target%" >nul
  goto :break
)
:break
echo File "%file%" was moved from "%source%" to "%target%"