批处理文件 - 使用创建日期和文本字符串复制最新文件

时间:2016-02-03 08:24:39

标签: batch-file file-type

我看过这里Batch file to copy directory if it has a later created date than the target directory

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations
{
    [self checkIfNearStore]; //Not being called in background
}

-(void)checkIfNearStore
{
    for (Store *currentStore in self.allStores) {
        if ([currentStore.circularRegion containsCoordinate:self.locationManager.location.coordinate]&&currentStore.alreadySendNotification==NO) {
            NSLog(@"Entered: %@",[[self storeForRegion:currentStore.circularRegion] address]);
            currentStore.alreadySendNotification=YES;
            [self.storesAlreadySentNotifications addObject:currentStore];
        }
    }

    for (Store *currentStore in self.storesAlreadySentNotifications) {
        if (![currentStore.circularRegion containsCoordinate:self.locationManager.location.coordinate]) {
            currentStore.alreadySendNotification=NO;
        }
    }
}

对我不起作用:(以下解释的是我正在使用的代码)

Dos显示&#34; xcopy / e / k&#34; file.bat&#34; &#34;位置&#34;找不到相关文件 - file.bat 0文件已复制&#34; 事情是这个文件不是最新创建的

我尝试过各种代码,但我无法正常工作。

我想要实现的目标:

我喜欢批处理文件,它会按创建日期搜索目录,然后选择最新的创建日期,然后复制到另一个方向,例如在上午08:16创建的文件将被复制,而不是在创建当天上午8:15创建的文件。

如果此批次可以按创建日期,文件类型和文件名中的一串文本进行搜索,那就太棒了。

文件:(日/月/时间格式)

for /f "tokens=*" %%a in ('dir/b /od \\machine\c$\location') do set newest=%%a
xcopy /e /k "%newest%" "\\machine\c$\otherlocation"
popd
pause

然后复制CSV,因为我只想要CSV,底部文件是最新创建的CSV

同时试过这个:

Test01010815.bat   created 01/01 08:15
Test01020817.bat   created 01/02 08:17
Test01020818.csv   created 01/02 08:18
Test01020819.csv   created 01/02 08:19

1 个答案:

答案 0 :(得分:0)

您已经开始使用映射驱动器z:,然后将代码更改为留下孤立的popd并使用网址,现在您正在使用两个...

这应该有效:

set "sourcedir=\\machine\c$\location"
set "destdir=\\el-1311932\c$\batch\export\exe"
for /f "delims=" %%i in ('dir/b /a-d /od "%sourcedir%\*.csv"') do set "LatestModifiedFile=%%~nxi"
xcopy /F /Y "%sourcedir%\%LatestModifiedFile%" "%destdir%\StockExport.csv"