通过在Windows Batch

时间:2016-06-23 09:10:17

标签: windows batch-file

我有一个脚本的批处理文件,它备份了我的一些mysql数据库表,并将它们保存在一个新创建的文件夹中,并将此模式命名为:" date_time"例如" 23.06.2016_1050"。 所以我有另一个批处理文件,它将特定文件夹中的每个* .sql文件导回到我的数据库。 我想要做的是,编写一个自动选择最新文件夹的批处理,然后运行我的部分代码。

这是我的批次代码:

cd c:\server\backup\character_data
FOR %%X IN (*.sql) DO ECHO Importing %%X & "C:\Program Files\MariaDB 10.1\bin\mysql" dspdb -h localhost -u root -p 123456789 < %%X

所以我需要cd%变量%,其中包含最新日期和时间模式的文件夹名称。

所以这个:

cd c:\server\backup\character_data\%variable%

将是:

cd c:\server\backup\character_data\23.06.2016_1050

有谁知道如何以某种方式将所需的文件夹名称作为变量?

我真的希望我解释得足够好,有人可以帮助我。 Thx提前! :)

1 个答案:

答案 0 :(得分:2)

这将获取c:\server\backup\character_data中包含完整文件路径的最新文件夹,因此无需执行cd c:\server\backup\character_data\%variable%,而是cd %a%

如果您不想要该文件夹的完整目录,请从/s命令中删除dir

@echo off
cd /d "c:\server\backup\character_data"
FOR /F "delims=" %%i IN ('dir /b /s /ad-h /t:c /od') DO SET a=%%i
::Do what you want with your folder, call it with %a%