windows下一些命令的记录

缘起

起因是因为在移植linux的程序到windows上,同事写了类似rm -rf cp -r这种平台特性的命令,甚至还用了组合的命令,所以我需要用batch脚本也写一下
由于我linux的bash用得比windows 的 batch还6,所以特写此随笔 防止老年痴呆后,有迹可循

删除文件夹

rm -rf xxx

对应

rmdir /s /q \"xxx\"

其中, s表示递归,/q表示自动确认yes
自动确认也可以这么写

echo y|rmdir /s \"xxx\"

复制文件夹

cp -r

对应

xcopy /i/e/c/h

其中 e=empty 表示空目录,子目录也需要复制 c=continue,复制一个文件失败,其他的仍然会复制, h=隐藏文件, i的话我暂时不知道什么名称,只知道在复制文件夹时,不指定这个参数会被复制为文件

删除n天之后的文件夹

#ifdef Q_OS_WIN
    QString exec = QString("FORFILES -p \"%1\" /D -%2 /C \"cmd /c IF @isdir == TRUE rd /S /Q @path\"").arg(path).arg(days);
#else
    QString exec = QString("find %1 -type d -mtime +%2 -exec rm -rf {} \\;").arg(path).arg(days);
#endif
    system(exec.toLocal8Bit().data());

删除n天之后的文件

    auto path = QCoreApplication::applicationDirPath() + "/log";
#ifdef Q_OS_WIN
    QString exec = QString("FORFILES -p \"%1\" /D -%2 /C \"cmd /c IF @isdir == FALSE del  @path\"").arg(path).arg(days);
#else
    QString exec = QString("find %1 -type f -name '*.log' -mtime +%2 -exec rm -rf {} \\;").arg(path).arg(days);
#endif
    system(exec.toLocal8Bit().data());

posted @   马肯尼煤牙巴骨  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示