根据查找文件夹

时间:2016-10-21 18:12:05

标签: batch-file scripting

我正在尝试将文件从一个文件夹复制到另一个文件夹,但如果该文件存在于查找文件夹中,我只会复制源文件夹中的文件。

@ECHO off
For ℅℅a in (℅1\*) do (
Set file = "℅2\℅℅~na℅℅~xa"
If exist ℅file℅ (
Echo yes
// Copy to destination folder 

)
Else(
Echo no
)
)

我正在运行它 “Copy.bat sourcefolder lookupfolder”destinationfolder

我今天刚刚开始批处理脚本而且我不知道什么是错的但是我有两个文件夹源文件夹并在文件夹源中查找文件夹我放置到文件a.txt和b.txt并且在文件夹查找中我只有b.txt但是当我运行它的打印是2次虽然查找中不存在a.txt

1 个答案:

答案 0 :(得分:1)

您需要的代码是:

For %%F in (%1\*) do (
    If Exist %2\%%~nxF (
        copy %%F %3\%%~nxF
    )   
)

因此,如果将其保存到Copy.bat文件并从cmd调用:

Copy.bat C:\a C:\b C:\c
,文件夹b中也存在的文件夹中的文件将复制到文件夹c中。

< / p>

符号说明:

  • %% F存储从文件夹解析的当前文件的路径(例如C:\ a \ a.txt)
  • %% ~nxF仅存储文件名(例如a.txt)
  • %1存储第一个参数的值(例如C:\ a)
  • %2存储第二个参数的值(例如C:\ b)
  • %3存储第三个参数的值(例如C:\ c)

有关批处理命令的详细信息,请访问以下链接:http://ss64.com/nt/

我希望这有用:)