bat脚本判断当前是否存在tbox_log的文件夹,如果存在,就删除,不存在就继续
时间: 2024-03-08 09:51:34 浏览: 85
您好,可以使用以下代码实现:
```
@echo off
if exist tbox_log (
rd /s /q tbox_log
echo 删除 tbox_log 文件夹成功!
) else (
echo tbox_log 文件夹不存在,继续执行!
)
```
解释一下代码:
- `@echo off` 表示关闭命令行窗口的回显。
- `if exist tbox_log` 判断当前目录下是否存在 tbox_log 文件夹。
- `rd /s /q tbox_log` 删除 tbox_log 文件夹,其中 `/s` 表示删除文件夹及其子文件夹,`/q` 表示不进行确认操作。
- `echo 删除 tbox_log 文件夹成功!` 表示输出删除成功的提示信息。
- `else` 表示如果 tbox_log 文件夹不存在,则执行下面的语句。
- `echo tbox_log 文件夹不存在,继续执行!` 表示输出提示信息,继续执行脚本。
相关问题
set myirname=tbox_log echo 111 %mydirname% 222 pause if exist %mydirname% ( pause echo rm %cd%\%mydirname% pause rd/s/q %cd%\%mydirname% echo del %mydirname% ok ) else ( echo %mydirname% isn't exist,continue ),执行完成没有设置的变量,打印如下C:\Users\24100\Desktop\bat>del adb_devices.txt C:\Users\24100\Desktop\bat>set myirname=tbox_log C:\Users\24100\Desktop\bat>echo 111 222 111 222
根据你提供的代码,你定义的变量名是 `myirname`,但是在输出的时候却使用了 `mydirname` 这个变量名,这就导致了打印结果中没有任何输出。
你可以将变量名改为 `mydirname`,或者将打印语句中的变量名改为 `myirname`,例如:
```
set myirname=tbox_log
echo 111 %myirname% 222
pause
if exist %myirname% (
pause
echo rm %cd%\%myirname%
pause
rd/s/q %cd%\%myirname%
echo del %myirname% ok
) else (
echo %myirname% isn't exist,continue
)
```
这样就可以正确输出变量的值了。
优化一下下面代码if(vsomeip::message_type_e::MT_REQUEST == _message->get_message_type()) { std::shared_ptr<vsomeip::message> its_response = vsomeip::runtime::get()->create_response(_message); if(TBOX_SERVICE_ID_LOCATION == _message->get_service()) { _location_service_response_map.insert(pair<uint16_t, std::shared_ptr<vsomeip::message>>(_message->get_method(), its_response)); } else if(TBOX_SERVICE_ID_TBS == _message->get_service()) { _tbox_service_response_map.insert(pair<uint16_t, std::shared_ptr<vsomeip::message>>(_message->get_method(), its_response)); } else if(TBOX_SERVICE_ID_RESV_UPDATE == _message->get_service()) { _resvUpdate_service_response_map.insert(pair<uint16_t, std::shared_ptr<vsomeip::message>>(_message->get_method(), its_response)); } else if(TBOX_SERVICE_ID_XCALL_VLAN04 == _message->get_service()){ _response_map.insert(pair<uint16_t, std::shared_ptr<vsomeip::message>>(_message->get_method(), its_response)); } else { free(its_data); DLT_IVI_VLAN04_LOG(DLT_LOG_WARN,DLT_STRING("unknown service id.")); return; } }
可以将多个if语句合并成一个switch语句,这样代码更简洁易读。同时,可以使用unordered_map代替多个map,将不同的服务ID对应的响应消息指针保存在同一个unordered_map中,这样可以避免代码重复。修改后的代码如下:
```
if (vsomeip::message_type_e::MT_REQUEST == _message->get_message_type()) {
std::shared_ptr<vsomeip::message> its_response = vsomeip::runtime::get()->create_response(_message);
uint16_t service_id = _message->get_service();
uint16_t method_id = _message->get_method();
switch (service_id) {
case TBOX_SERVICE_ID_LOCATION:
_location_service_response_map[method_id] = its_response;
break;
case TBOX_SERVICE_ID_TBS:
_tbox_service_response_map[method_id] = its_response;
break;
case TBOX_SERVICE_ID_RESV_UPDATE:
_resvUpdate_service_response_map[method_id] = its_response;
break;
case TBOX_SERVICE_ID_XCALL_VLAN04:
_response_map[method_id] = its_response;
break;
default:
free(its_data);
DLT_IVI_VLAN04_LOG(DLT_LOG_WARN, DLT_STRING("unknown service id."));
return;
}
}
```
阅读全文