Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 每5分钟将文件从一个文件夹移动到另一个文件夹的批处理程序_Batch File - Fatal编程技术网

Batch file 每5分钟将文件从一个文件夹移动到另一个文件夹的批处理程序

Batch file 每5分钟将文件从一个文件夹移动到另一个文件夹的批处理程序,batch-file,Batch File,我需要一个批处理程序,每5分钟将文件从一个文件夹移动到另一个文件夹(就像一个无限循环,直到批处理程序手动关闭)。 我们必须通过名为Re-route的应用程序将文件上传到我们的应用程序。但是,Re route从中提取文件的文件夹被放置在另一个驱动器上,整个团队都无法访问该驱动器,这对于它所保存的文档来说同样至关重要。因此,团队成员将文件放置在一个公共驱动器上,团队负责人(可以访问通过重路由从中拾取文件的另一个驱动器)将文件移动到实际的重路由驱动器。这会消耗大量的生产时间,因为每5分钟必须进行一次

我需要一个批处理程序,每5分钟将文件从一个文件夹移动到另一个文件夹(就像一个无限循环,直到批处理程序手动关闭)。 我们必须通过名为Re-route的应用程序将文件上传到我们的应用程序。但是,Re route从中提取文件的文件夹被放置在另一个驱动器上,整个团队都无法访问该驱动器,这对于它所保存的文档来说同样至关重要。因此,团队成员将文件放置在一个公共驱动器上,团队负责人(可以访问通过重路由从中拾取文件的另一个驱动器)将文件移动到实际的重路由驱动器。这会消耗大量的生产时间,因为每5分钟必须进行一次

任何帮助都将不胜感激。 谢谢

问候,,
Vivek

好的,据我所知,这是您的解决方案。
1.创建有权访问该位置的特定用户。使用该凭证,您可以运行批处理程序。
2.你需要一个调度程序。看看石英

或者可以使用Java提供的TimeTask。您可以根据需要修改以下程序。 示例如下所示

import java.util.Timer;
import java.util.TimerTask;

public class TimerTest{
   private Timer timer;

    public TimerTest() {
        timer = new Timer();
        timer.schedule(new PrintTask(), 5*60*1000);
    }

    class PrintTask extends TimerTask {
        public void run() {
          //  System.out.println("Timer task is printing..");
          //  timer.cancel(); 
          //write file copy logic here.
          // see - Files.copy(source, target, REPLACE_EXISTING); 
          // see java nio APIs
        }
    }

    public static void main(String args[]) {
        new TimerTest(5);
    }
}

你可能想试试这个。。我假设您正在将文本文件从一个文件夹移动到另一个文件夹。下面的代码将使用DOS中的超时功能以10秒的间隔执行此操作。您可以根据需要更改时间(以秒为单位)。太简单了!!这个问题现在应该已经回答了

@回音 :家 超时/T 10/NOBREAK cls 移动“D:\Batch\1*.txt”D:\Batch\2 cls
后藤:家

你的问题很不清楚。1.你想要一个批处理程序吗?2.您想对您的逻辑拥有单独的权限吗?3.你想节省带宽吗?请明确要求。看到有人已经否决了你的问题,可能只是因为这个原因。我试图让自己说得很清楚。不管怎样,这是我需要的。一个批处理程序,可以每5分钟(或我选择的任何时间间隔)将文件从一个文件夹移动到另一个文件夹,为什么不给公用驱动器重新路由访问权呢?如果它在另一台机器上,只需映射驱动器。出于某些安全原因,这是我问这个问题的原因。我只需要在无限循环中每隔5分钟使用以下命令(即批处理程序始终在运行)。移动d:\abc\XXX d:\cef\XXXQuartz是第三方应用程序。无法在办公室使用此选项(信息安全策略)。我需要一个简单的批处理程序,它不需要Infosec团队的任何许可,因为批处理程序不是第三方应用程序。希望这有帮助。好的,给我点时间。我将编辑上面的答案,这可能会对你的情况有所帮助。我感谢你的帮助。但是我怎样才能在批处理程序中使用java逻辑呢?对不起,我没有编程背景。我不知道如何在dos中使用计时器函数,否则我会自己做。您需要通过这个
timer.schedule(new PrintTask(),5*60*1000)更改此行
并替换run方法以放置文件复制逻辑。您可以使用java文件复制API来实现这一点。我无法在此处编写生产就绪代码,因为我不知道您的项目详细信息。请参阅run方法的注释部分。您需要将该部分替换为文件copy logic.Bingo。这就是我想要的。谢谢你,克鲁克。