【问题标题】:Find in “xxx” folder today files that containing “yyy” string inside and copy those files to “zzz” folder using batch script今天在“xxx”文件夹中查找包含“yyy”字符串的文件,并使用批处理脚本将这些文件复制到“zzz”文件夹
【发布时间】:2015-09-14 23:49:26
【问题描述】:

我正在尝试做这些:

  • 在“XXX”文件夹中的 0-day 文件中搜索“YYY”字符串
  • 将这些文件复制到“ZZZ”现有文件夹中
  • 仅将目标文件夹中的文件重命名为“Currency_%date%_#xy.bak”

我想这可以通过forfilesfindstr 命令或通过for /f loop 来完成。

我尝试从:

 For /F "Tokens=* Delims=" %%I In ('forfiles /M *.bak /S /D 1') Do (Findstr /m "yyy" %%I)

【问题讨论】:

    标签: windows batch-file command-line windows-server findstr


    【解决方案1】:

    forfiles /D 1 将在明天或更晚创建文件。

    使用/D 0(即“今天或以后”)

    另外,默认情况下,forfiles 只给你没有路径的文件名,所以如果它们在子目录中,findstr 找不到它们。要纠正此行为,请使用:

    for /f "delims=" %%i in ('FORFILES /s /M *.bak /C "cmd /c echo @path"') do ( findstr /m "yyy" %%i && copy "%%i" "zzz\" )
    

    更多信息请参见forfiles /?

    【讨论】:

    • 嘿。此脚本无法正常工作。顺便说一句-我知道今天或以后的 /d 0 i。我需要通过在这些新文件中搜索字符串来获取要复制到另一个文件夹的文件列表。谢谢
    • “不正确”是什么意思?哪个脚本?
    • 我的脚本运行不正常。我无法让它正常工作。
    • @dej:看看我的编辑是否有帮助。如果没有,请尝试更好地解释您的问题。
    • 请不要问“变色龙”问题。如果您还有其他问题,请提出新问题。
    猜你喜欢
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多