我需要创建一个批处理文件,该文件应该将第一个文档从提供的源位置移动到另一个位置。
考虑源文件夹有10个文件我只想将任何一个文件从10移动到另一个路径。我还需要将移动的文件名存储在临时变量中。 我尝试使用下面的move命令
MOVE "C:\temporaryfolder\*.txt" "C:\Backup"
但是我收到一个错误,因为多个文件无法复制到单个文件中。
请在这种情况下提供帮助。
答案 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%"