batch-file - 批处理脚本逻辑
问题描述
我正在寻找一种在批处理脚本中实现的逻辑。以下是我的案例
我在 中收到了文件名.eml_body
,但是当我执行我的代码时文件名会有所不同,我已经安排了一个任务来每 5 分钟执行一次代码并生成文件。
例如,当我第一次执行代码时会生成文件1000.eml_body
,第二次执行文件时会生成1001.eml_body
. 在这里我只需要考虑文件的格式.eml_body
,所以如果提到的目录中存在这种格式,我需要移动该目录中存在的其他文件。我写在下面的代码不是它给出错误
set str=.eml_body
if exist "D:\Cash_Apps_New\OutputFolder\New folder\%str% goto Move
:Move D:\Cash_Apps_New\OutputFolder\New folder\ * D:\Cash_Apps_New\OutputFolder\bckup
pause
解决方案
您不能将标签及其内容放在一行中,并且您需要始终使用双引号路径,尤其是带有空格且此处不需要 goto 的路径。
@echo off
set "str=.eml_body"
if exist "D:\Cash_Apps_New\OutputFolder\New folder\%str%" (
move "D:\Cash_Apps_New\OutputFolder\New folder\*" "D:\Cash_Apps_New\OutputFolder\bckup"
)
pause
但是,如果您的意图是移动所有.eml_body
文件,那么我想您只是想这样做:
move "D:\Cash_Apps_New\OutputFolder\New folder\*.eml_body" "D:\Cash_Apps_New\OutputFolder\bckup" /Y
编辑根据您现在更清晰的评论,这就是您想要的。
@echo off
for %%i in ("D:\Cash_Apps_New\OutputFolder\New folder\*") do if /i not "%%~xi"==".eml_body" if not "%%~i"=="%~nx0" move "%%~i" "D:\Cash_Apps_New\OutputFolder\bckup\%%~nxi"
推荐阅读
- java - 我正在阅读“Java 编程和数据结构简介”一书,在解释类抽象和封装的章节中,它说:
- node.js - 如何在 Mongoose 中正确格式化 API 响应?
- javascript - 做一些freecodecamp问题,我遇到了一个指导对象值的小问题
- graphql - 阿波罗,Next.js,Strapi,GraphQL 错误'
. ' 在方案或关系中找不到 - javascript - Javascript从电报中保存用户名
- javascript - 在angularJs的自定义指令中观察错误抛出错误
- vue.js - Safari 上未显示 Vuetify mdi 图标
- javascript - 如何在反应中将道具传递给多级组件?
- javascript - 脚本未从外部文件加载 css 属性
- postgresql - PostgreSQL Group By 查询结果不显示组值,只显示列名