批处理文件,使用正则表达式查找文件并重命名

时间:2017-01-15 22:04:33

标签: batch-file findstr renaming

import './bootstrap';
import router from './routes';
import app from './views/app';

router.beforeEach((to, from, next) => {  //if this callback was commented out the <router-view></router-view> would render what i want it to render
    if(to.fullPath === '/logout') {
        axios.get('/logout');
        router.push('/');
    }
});

new Vue({

    el: "#app",

    router,

    render: h => h(app)

});

所以我试图运行上面的批处理来查找文件并重命名。文件名有空格。当我在命令提示符下运行以下命令时,它找到正确的文件

@echo 

cd\

cd C:\Test\pdf

for /f "delims=" %%i in ('dir /b | findstr /E /R "\\BW RRI - [0-9]\.[0-9]\PAYMENT CONFIRMATION.pdf$"') do set "Filename=%%i" ren ("%FileName%" "test.pdf")

EXIT

但是当我使用for循环重命名它时,它不起作用。我做错了什么?

1 个答案:

答案 0 :(得分:0)

3个错误。

首先,将解析整个for /f...行,并将其%var%替换为当时的当前值,因此ren子句将变为ren ("" "test.pdf")

其次,括号将包含在ren的参数中,应删除

第三,set子句和ren应由&分隔,以级联说明。

.... do ren "%%i" "test.pdf"

应该解决问题。无需设置filename