首页
关于
联系我
Search
1
z-library最新地址
4,971 阅读
2
win11不能访问共享0x800704f8
996 阅读
3
小米路由器4A千兆版(R4A) 关闭ipv6 防火墙
735 阅读
4
小米路由器4A千兆版(R4A)开启ssh
510 阅读
5
国内安装rust
371 阅读
未分类
各种资料
我的分析
技术活
游记
真相
笔记
经历
财务知识
资源类
软文
统计学
计划本
事件记录
反思
读后感
日记反刍
登录
Search
标签搜索
问题
linux
vps
debian
测试
其他
apt-get
库
wordpress
cdn
code
设置
信息
IP
nginx
应用
推荐
搬家
操作
bae
Typecho
累计撰写
501
篇文章
累计收到
12
条评论
首页
栏目
未分类
各种资料
我的分析
技术活
游记
真相
笔记
经历
财务知识
资源类
软文
统计学
计划本
事件记录
反思
读后感
日记反刍
页面
关于
联系我
搜索到
501
篇与
的结果
2025-11-11
25年某县出生数据分析
全县25年生育群体从13 到 48岁。其中18岁开始快速上升,直到33岁开始下跌26岁至33岁属于振荡期,总体下降。33岁开始快速下降,基本到44岁后基本无生育。16-18 岁陡然上升,18-26 岁 以平均20个的速度上升。33 -44 以平均40个速度下降。以大多数人的经历选择来看,26岁是最佳生育年龄 。26-29 是最佳生育年龄段。33岁后就不要选择生育了,42岁以后肯定不要生了,48岁后风险很大,坚决不要生了
2025年11月11日
9 阅读
0 评论
0 点赞
2025-10-16
解决Win10出现“你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问” - 开启局域网文件共享
1、运行里输入 gpedit.msc 设置策略2、计算机配置 - windows配置 - 安全设置 - 本地策略 -- 安全选项 -- 账号:来宾账户 - 已启用3、计算机配置 - 管理模板 - 网络 - lanman 工作站 - 启用不安全的来宾登录 - 已启用
2025年10月16日
30 阅读
0 评论
0 点赞
2025-10-14
WARP 使用MASQUE协议
其他协议,都不能用了,这个masque 协议,也只有联通部分网络可以。1、在 C:\ProgramData\Cloudflare目录下,新建文本文件:mdm.xml ,复制以下内容进去,并保存`<key>warp_tunnel_protocol</key> <string>masque</string>` 保存,重启warp 客户端
2025年10月14日
33 阅读
0 评论
0 点赞
2025-10-14
warp/warp+ 设置单ipv4或ipv6
因为咱是只有windows 版本的。所以只介绍windosws 版的打开warp/warp+,任务栏选中它,点击右下角齿轮图标,选择“偏好设置”,左侧列表切换到“高级”,选择“排除拆分隧道”,点击加号,输入来源ip/ip段即可。如果只需要ipv6,那么就添加0.0.0.0/0反之,如果只需要ipv4,那么就添加::/0如果需要其中一者或者两者,又不希望让warp/warp+失效,那么就需要仅小范围的放行来源,这就需要添加自己的CIDR块,或者具体的IP地址,又或者中间的固定的公网IP网络地址。
2025年10月14日
38 阅读
0 评论
0 点赞
2025-08-28
我想记录下读后感
也许是真的年龄大了,发现总是难以静下来。书读了好多,但又总是忘记。事情做了好多,但又很快遗忘,最后又变得模糊。所以想记录下来,作为查阅资料。
2025年08月28日
22 阅读
0 评论
1 点赞
2025-08-20
Setup is unable to find the “depmod” program on your machine
vmware linux 安装tools 的时候会提示这个错误。研究了下应该是权限问题。但是su 也不行。最终解决方法是:1、先su 切换到root2、再 sudo ./vmware-install.pl竟然需要再sudo 下,不懂原理是什么。就这样吧。
2025年08月20日
56 阅读
0 评论
0 点赞
2025-05-29
国内安装rust
由于国内的网络环境,rust 官方脚本无法安装。但是可以利用国内的镜像源。1、设置环境变量# 临时设置环境变量以替换默认更新源和分发服务器 export RUSTUP_UPDATE_ROOT=https://mirrors.aliyun.com/rustup/rustup export RUSTUP_DIST_SERVER=https://mirrors.aliyun.com/rustup 2、使用阿里的脚本curl --proto '=https' --tlsv1.2 -sSf https://mirrors.aliyun.com/repo/rust/rustup-init.sh | sh3、更新cargo 配置变量 。这个暂时没搞明白,稍后补充
2025年05月29日
371 阅读
3 评论
0 点赞
2025-05-19
Caddy 证书存在哪里?
证书存在 /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/ 下边
2025年05月19日
120 阅读
0 评论
0 点赞
2025-04-27
mv 排除某个文件或文件夹
1、打开扩展模式,可以使用通配符shopt -s extglob2、例如需要排除a文件夹,剩下的文件移动到b文件夹mv !(a) b
2025年04月27日
139 阅读
0 评论
0 点赞
2025-04-26
胆结石复查(四)
一般是一月半或者2个月后复查。复查的目的是检查是否还有结石存在。需要检查是验血,彩超,ct或者增强ct,胆管造影。验血的目的是检查肝脏情况。彩超是为了检查腹腔内情况。ct是看胆管形态和结石情况。胆管造影是为了看结石和胆汁流动情况。天坑:1、复查前一天务必保持引流管开放,一直到你拔管都别关。深深的领悟。2、胆管造影巨疼,要有心理准备,提前做好心理建设。3、胆管没放开或者是造影感染会发烧,护士说多数人都会发烧。建议备一颗布洛芬。发现发烧立马喊护士。发烧的原因,我猜测应该是造影剂打入胆管后造成感染,所以开放引流管让它一直流,会帮助排出造影剂。4、拔管不痛。5、拔管出院后,一定问要准备纱布,大量的纱布,因为拔管后,那个洞还会咕咚咕咚冒胆汁,过程持续一天。睡觉的时候用上护理垫。胆汁溢出有个好办法就是用卫生巾,效果确实很好。有个疑惑为啥给我拔管的医生没给我堵住洞口?难道就这样流?6、一到三天基本就是少量渗出了,多抹碘伏,多换纱布,反正纱布脏了就换。三天后基本好了。
2025年04月26日
93 阅读
0 评论
0 点赞
2025-04-26
胆结石院后护理(三)
出院后,主要还是预防伤口感染,定期放胆汁。不过作为病人还是比较痛苦的,因为睡觉了,吃饭了,活动了,都需要带个引流袋,相当的不舒适。能减轻不舒适感觉的,就是配齐装备。能不活动就不要活动,多喝水,少吃肉,主食就素食为主。护理装备:引流袋10个足够,纱布,敷贴 至少20个起,胶带5卷,碘伏500ml,凡士林医用纱布1、引流袋隐藏包。完全没必要,效果也是相当的不好,直接用曲别针挂在裤子上,然后让引流袋贴着身子。2、引流袋。淘宝上买吧,相当的便宜3块一个,买那种防反流的。别问为啥,因为运动多,反流会感染腹腔。3、纱布、敷贴。纱布透气,但是粘不牢容易掉。敷贴粘的牢但是不透气吸水性不好。一般在家里就用纱布,出门多就用敷贴比较好,不容易掉。4、换药自己来或者找家属帮忙都很简单。别舍不得碘伏,多用点,比感染强太多。5、需要注意的就是千万保护好管子,小心拉扯。再去插管相当的麻烦的。6、一般两周可以夹闭引流管,但是还是建议询问你的主治医师。最好是早闭管,早训练胆管,可以放一阵开一阵,有不舒服就放开,能接受就闭管。7、胆汁形态。胆汁正常的是金黄色的。有时候会有团块和絮状物。发现有杂质最好是放一下,让胆汁排到引流袋里。另外发现多喝水能避免胆汁浑浊。8、其他影响。会便秘。因为吃的食物含油脂的不少,胆汁减少,消化会变差。千万别不吃饭或者吃太多,建议每天4顿饭,6成饱。
2025年04月26日
54 阅读
0 评论
0 点赞
2025-04-22
批处理-For详解
全文复制备份于:https://www.cnblogs.com/DswCnblog/p/5435300.html 感谢作者大纲复制代码一 前言二 for语句的基本用法三 for /f (delims、tokens、skip、eol、userbackq、变量延迟)四 for /r (递归遍历)五 for /d (遍历目录)六 for /l (计数循环)复制代码一、前言在批处理中,for是最为强大的命令语句,它的出现,使得解析文本内容、遍历文件路径、数值递增/递减等操作成为可能;配合if、call、 goto等流程控制语句,更是可以实现脚本复杂的自动化、智能化操作;合理使用for语句,还能使代码大为简化,免除各位编写大量重复语句之苦。而能否熟 练使用for语句,已经成为衡量一个人批处理水平高低最主要的标准。在这个系列教程中,我将通过实际应用中频繁出现的例子,带领大家步入for语句的神奇之门,一步步迈向for语句的魔幻殿堂,使得大家在实际的应用中,能独立写出简洁高效的代码,在批处理的世界里自由驰骋。注意:以下的讲解,都是基于简体中文版Windows XP Pro SP3的操作系统环境。二、for语句的基本用法正如色彩缤纷的七彩光芒是由红绿蓝三原色构成的一样,最复杂的for语句,也有其基本形态,它的模样是这样的:在cmd窗口中:FOR %variable IN (set) DO command [command-parameters]在批处理文件中:FOR %%variable IN (set) DO command [command-parameters]具体例子:For %i in (1 2 3) do @echo %i之所以要区分cmd窗口和批处理文件两种环境,是因为在这两种环境下,命令语句表现出来的行为虽然基本一样,但是在细节上还是稍有不同。最明显的一个差异就是:在cmd窗口中,for之后的形式变量I必须使用单百分号引用,即%i;而在批处理文件中,引用形式变量i必须使用双百分号,即%%i。我们先来看一下for语句的基本要素都有些什么: 1、for、in和do是for语句的关键字,它们三个缺一不可; 2、%%I是for语句中对形式变量的引用,就算它在do后的语句中没有参与语句的执行,也是必须出现的; 3、in之后,do之前的括号不能省略; 4、command1表示字符串或变量,command2表示字符串、变量或命令语句;现在,你可能已经会写一个简单的for语句了,比如:[code1]@echo offfor %%I in (bbs.bathome.net) do echo %%Ipause保存为批处理文件并执行,将会在弹出的批处理窗口中看到这样的信息:bbs.bathome.net请按任意键继续...很快地,你会觉得这个for语句是如此的简单,简单到你丝毫感受不出它的强大:这个for语句,和我直接用echo语句没什么两样啊!是的,演示代码永远都只是演示而已,就像大多数高级语言的教科书一样,在引导新手学习的时候,基本上都是千篇一律地告诉大家如何编写一个能显示 hello world! 的窗口,从这些演示代码中,你看不到它们具有多少实用性,你只是感到有点好奇:咦,居然弹出了一个窗口?片刻之后,你就会觉得索然无味。那好吧,为了让大家对for更加感兴趣,我们先来分析一下for语句的一些注意事项,之后,再让大家看看更为强大的for语句实例。1、for语句的形式变量I,可以换成26个字母中的任意一个,这些字母会区分大小写,也就是说,%%I和%%i会被认为不是同一个变量;形式变量I还可以换成其他的字符,但是,为了不与批处理中的%0~%9这10个形式变量发生冲突,请不要随意把%%I替换为%%0 ~%%9中的任意一个; 2、in和do之间的command1表示的字符串或变量可以是一个,也可以是多个,每一个字符串或变量,我们称之为一个元素,每个元素之间,用空格键、跳格键、逗号、分号或等号分隔; 3、for语句依次提取command1中的每一个元素,把它的值赋予形式变量I,带到do后的command2中参与命令的执行;并且每次只提取一个元 素,然后执行一次do后的命令语句,而无论这个元素是否被带到command2中参与了command2的运行;当执行完一次do后的语句之后,再提取 command1中的下一个元素,再执行一次command2,如此循环,直到command1中的所有元素都已经被提取完毕,该for语句才宣告执行结 束;其中,第3点是最为关键的,它描述了for语句的执行过程,是for语句的精髓所在,大家一定要牢记这一条,才能深刻理解更为复杂的for流程。有了以上的基础,我们再来看一个例子,这个例子修改了[code1]的部分内容,结果将大不一样:[code2]@echo offfor %%I in (bbs,bathome,net) do echo %%Ipause和[code1]的执行结果[result1]相比,[result2]发生了如下变化: 1、显示结果分成了3行(不算最后一行中文提示); 2、每一行都从逗号处被切分;如果把 bbs.bathome.net 这个字符串中的点号换为空格、跳格或等号,执行结果将和example2的执行结果别无二致。现在,我们来分析一下[code2]代码中for语句的执行过程: 首先,for语句以逗号为分隔符,把 bbs,bathome.net 这个字符串切分成三个元素:bbs、bathome和cn,由此决定了do后的语句将会被执行3次; 然后,第一次执行过程是这样的:先把 bbs 这个字符串作为形式变量I的值,带入do后的语句中加以执行,也就是执行 echo %%I 语句,此时的I值为bbs,因此,第一次执行的结果,将会在屏幕上显示bbs这个字符串;第二次执行和第一次执行的过程是一样的,只不过此时I的值已经被替换为command1中的第二个元素了,也就是 bathome 这个字符串;如此循环,当第三次echo执行完毕之后,整条for语句才算执行完毕,此时,将执行下一条语句,也就是pause命令。为了让大家见识一下for的真正威力,本人绞尽脑汁,翻帖无数,不得要领,万般无奈之下,只好亮出了尘封在箱底多年的一段代码:检测当前硬盘都有哪些分区。[code3]@echo offset str=c d e f g h i j k l m n o p q r s t u v w x y zecho 当前硬盘的分区有:for %%i in (%str%) do if exist %%i: echo %%i:pause这段代码能检测硬盘都有哪些分区,包括U盘和移动硬盘的分区,但是,当光驱中有盘的时候,也会被列出来,这是本代码的一个缺憾,在以后的讲解中,我将向大家讲述如何消除这个瑕疵,敬请关注本系列的后续章节。高级应用:想知道当前目录下都有哪些文件吗?请用下面的代码:复制代码@echo off rem 首先建立临时文件test.txt echo ;注释行,这是临时文件,用完删除 >test.txt echo 11段 12段 13段 14段 15段 16段 >>test.txt ::向一个文件追加内容使用>> echo 21段,22段,23段,24段,25段,26段 >>test.txt echo 31段-32段-33段-34段-35段-36段 >>test.txtpause复制代码想列出当前目录下所有的文本文件吗?请用下面的代码@echo offfor %%i in (*.txt) do echo "%%i"pause想列出只用两个字符作为文件名的文本文件吗?(注:实际上这个代码是输出少于或等于两个字符作为文件名的文本文件)请用下面的代码:@echo offfor %%i in (??.txt) do echo "%%i"pause题外话:1、列出当前目录下各种文件的方法,最简单的还是用dir命令,但是,从以上代码中,各位可以加深对for语句执行流程的理解(用到了通配符*和?); 2、注意:以上代码不能列出含有隐藏或系统属性的文件;(注:这里其实有一个很有趣的现象,windows中的系统文件一般具备两种属性——隐藏和系统;但是你如果测试的话就会发现,加上+s属性,但是不加+h的文件是可以被简单的for显示出来的。例如:@echo offattrib +s 1.txtFor %%i in (*.txt) do Echo %%ipause这里的1.txt在结果中显示出来了。所以“以上代码不能列出含有隐藏或系统属性的文件”是不准确的,而因该说成“以上代码不能列出含有隐藏属性的文件”)三、文本解析显神威:for /f 用法详解前言 for /f 是个十分强大的家伙。 如果说,for语句是批处理中最强大的语句的话,那么,for /f 就是精华中的精华。 for /f 的强大,和它拥有众多的开关密切相关。因为开关众多,所以用法复杂,本章将分成若干小节,为大家逐一介绍强大的 for /f 语句。(1)为解析文本而生:for /f 的基本用法 所有的对象,无论是文件、窗体、还是控件,在所有的非机器语言看来,无外乎都是形如"c:\test.txt"、"CWnd"之类的文本信息;而所有的对象,具体的如ini文件中的某条配置信息、注册表中的某个键值、数据库中的某条记录…都只有转化为具有一定格式的文本信息,方可被代码识别、操 控。可以说,编程的很大一部分工作,都是在想方设法绞尽脑汁如何提取这些文本信息。 而提取文本信息,则是for /f的拿手好戏:读取文件内容;提取某几行字符;截取某个字符片段;对提取到的内容再切分、打乱、杂糅……只要你所能想到的花样,for /f 都会想方设法帮你办到,因为,for /f 就是被设计成专门用于解析文本的。先来看个例子。假如有个文本文件test.txt,内容如下:[txt1]论坛的目标是:不求最大,但求最好,做最实用的批处理论坛。论坛地址:bbs.bathome.net。这里是:新手晋级的福地,高手论剑的天堂。那么,将如下代码保存为test.cmd,并放在test.txt同一目录下运行,将会在屏幕上原样显示test.txt的内容:[code4]@echo offfor /f %%i in (test.txt) do echo %%ipause 这段代码,主要是让你树立这样一种观念:读取文本文件的内容(注:改为“逐行分析文本文件的内容”,因为读取文本文件内容的方法命令有很多,比如重定向输入,又比如type/more/find/sort等命令),请使用 for /f 语句!进阶话题:for /f 语句是把整个test.txt一次性显示出来的?在这段代码中,虽然执行结果是把test.txt中的所有内容都显示出来了,貌似 for /f 语句是把整个test.txt一次性显示到屏幕上,实际上并非如此。 无论for语句做何种变化,它的执行过程仍然遵循基本的for流程:依次处理每个元素,直到所有的元素都被处理为止。只不过在for /f语句中,这里的元素是指文件中的每一行,也就是说,for /f 语句是以行为单位处理文本文件的。这是一条极为重要的规则,在上一章中也强调过它的重要性,希望在接下来的学习过程中,你能时刻牢记这一原则,那么,很多问题将会迎刃而解。以下是验证这一说法的演示代码(在[code4]的基础上添加了&pause语句):[code5]@echo offfor /f %%i in (test.txt) do echo %%i&pausepause(2) 切分字符串的利器:delims=还是[txt1]这段文本,把[code4]改造一下:[code6]@echo offfor /f "delims=," %%i in (test.txt) do echo %%ipause再次运行test.cmd,看到什么变化了吗?[result2]论坛的目标是:不求最大论坛地址:bbs.bathome.net。这里是:新手晋级的福地请按任意键继续... 结果,你惊奇地发现,每行第一个逗号之后的所有内容都不见了(如果有不存在逗号的行,则保留原样),也就说,你成功地提取到了每行第一个逗号之前的所有内容! 如果别人给了你一个软件清单,每行都是"英文软件名(逗号)中文软件名"的格式,而你却只想保留英文名的时候,这段代码将是多么有用啊!再假设,有 这么一个IP文件,第一列是数字格式的IP地址,第二列是具体的空间地址,列与列之间用逗号分隔,而你想提取其中数字格式的IP,呵呵,我不说你也知道该 怎么办了吧?要是文本内容不是以逗号分隔,而是以其他符号分隔,那么,把"delims=,"的逗号换成相应的符号就可以了。在这里,我们引入了一个新的开关:"delims=,",它的含义是:以逗号作为被处理的字符串的分隔符号。在批处理中,指定分隔符号的方法是:添加一个形如 "delims=符号列表" 的开关,这样,被处理的每行字符串都会被符号列表中罗列出来的符号切分开来。需要注意的是:如果没有指定"delims=符号列表"这个开关,那么,for /f 语句默认以空格键或跳格键作为分隔符号。请把[txt1]中不同位置上的标点符号改为空格或跳格,再运行[code4]试试。进阶话题:如果我要指定的符号不止一个,该怎么办?在上面的讲解中,我提到了指定分隔符号的方法:添加一个形如"delims=符号列表"的开关。不知道你注意到没有,我的说法是"符号列表"而非"符号",这是大有讲究的,因为,你可以一次性指定多个分隔符号!还是以[txt1]为例,把[code6]再改造一下[code7]@echo offfor /f "delims=.," %%i in (test.txt) do echo %%ipause结果显示:[result3]论坛的目标是:不求最大论坛地址:bbs这里是:新手晋级的福地请按任意键继续...这样,第一个点号或第一个逗号之前的内容都被提取出来了。[code7]的执行过程是:逐行读取test.txt中的内容,以点号和逗号切分每一行的内容(不存在点号和逗号的行,则不再切分,为了描述的方便,我们把被点号或逗号切分的一个一个的字符串片段,称之为节),然后,for /f 会提取第一节的内容作为最终结果,显示在屏幕上。需要注意的是,在这里,所有行的字符串被切分成了两个以上的节,但是,[code7]的代码只会提取第一节字符串的内容,因为 for /f 语句默认只提取第一节的符串。(3) 定点提取:tokens=上一节在讲解 delims= 的时候,我一再强调 for /f 默认只能提取到第一节的内容,现在我们来思考一个问题:如果我要提取的内容不在第一节上,那怎么办?这回,就该轮到 tokens= 出马了。tokens= 后面一般跟的是数字,如 tokens=2,也可以跟多个,但是每个数字之间用逗号分隔,如 tokens=3,5,8,它们的含义分别是:提取第2节字符串、提取第3、第5和第8节字符串。注意,这里所说的“节”,是由 delims= 这一开关划分的,它的内容并不是一成不变的。下面来看一个例子:[txt2]尺有所短,寸有所长,学好批处理没商量,考虑问题复杂化,解决问题简洁化。对[txt2]这段文本,假设它们保存在文件test.txt中,如果我想提取“学好批处理没商量”这句话,该如何写代码呢?我们稍微观察一下[txt2]就会发现,如果以逗号作为切分符号,就正好可以把“学好批处理没商量”化为单独的一“节”,结合上一节的讲解,我们知 道,"delims=," 这个开关是不可缺少的,而要提取的内容在以逗号切分的第3节上,那么,tokens= 后面的数字就应该是3了,最终的代码如下:[code8]@echo offfor /f "delims=, tokens=3" %%i in (test.txt) do echo %%ipause如果我们现在要提取的不只一个“节”,而是多个,那又怎么办呢?比如,要提取以逗号切分的第2节和第5节字符串,是写成这样吗?[code9]@echo offfor /f "delims=, tokens=2,5" %%i in (test.txt) do echo %%ipause运行批处理后发现,执行结果只显示了第2节的内容。原来,echo 后面的 %%i 只接收到了 tokens=2,5 中第一个数值2所代表的那个字符串,而第二个数值5所代表的字符串因为没有变量来接收,所以就无法在执行结果中显示出来了。那么,要如何接收 tokens= 后面多个数值所指代的内容呢?for /f 语句对这种情况做如下规定:如果 tokens= 后面指定了多个数字,如果形式变量为%%i,那么,第一个数字指代的内容用第一个形式变量%%i来接收,第二个数字指代的内容用第二个形式变量%%j来接收,第三个数字指代的内容用第三个形式变量%%k来接收……第N个数字指代的内容用第N个形式变量来接收,其中,形式变量遵循字母的排序,第N个形式变量具体是什么符号,由第一个形式变量来决定:如果第一个形式变量是%%i,那么,第二个形式变量就是%%j;如果第一个形式变量用的是%%x,那么,第二个 形式变量就是%%y。现在回头去看[code9],你应该知道如何修改才能满足题目的要求了吧?修改结果如下:[code10]@echo offfor /f "delims=, tokens=2,5" %%i in (test.txt) do echo %%i %%jpause如果有这样一个要求:显示[txt2]中的内容,但是逗号要替换成空格,如何编写代码?结合上面所学的内容,稍加思索,你可能很快就得出了答案:[code11]@echo offfor /f "delims=, tokens=1,2,3,4,5" %%i in (test.txt) do echo %%i %%j %%k %%l %%mpause写完之后,你可能意识到这样一个问题:假如要提取的“节”数不是5,而是10,或者20,或者更多,难道我也得从1写到10、20或者更多吗?有没有更简洁的写法呢?答案是有的,那就是:如果要提取的内容是连续的多“节”的话,那么,连续的数字可以只写最小值和最大值,中间用短横连接起来即可,比如 tokens=1,2,3,4,5 可以简写为 tokens=1-5 。还可以把这个表达式写得更复杂一点:tokens=1,2-5,tokens=1-3,4,5,tokens=1-4,5……怎么方便就怎么写吧。大家可能还看到一种比较怪异的写法:[code12]@echo offfor /f "delims=, tokens=1,*" %%i in (test.txt) do echo %%i %%jpause结果,第一个逗号不见了,取代它的是一个空格符号,其余部分保持不变。其中奥妙就在这个星号上面。tokens=后面所接的星号具备这样的功能:字符串从左往右被切分成紧跟在之前的数值所表示的节数之后,字符串的其余部分保持不变,整体被所表示的一个变量接收。理论讲解是比较枯燥的,特别是为了严密起见,还使用了很多限定性的修饰词,导致句子很长,增加了理解的难度,我们还是结合[code12]来讲解一下吧。[txt2] 的内容被切分,切分符号为逗号,当切分完第一节之后,切分动作不再继续下去,因为 tokens=1,* 中,星号前面紧跟的是数字1;第一节字符串被切分完之后,其余部分字符串不做任何切分,整体作为第二节字符串,这样,[txt2]就被切分成了两节,分别 被变量%%i和变量%%j接收。以上几种切分方式可以结合在一起使用。不知道下面这段代码的含义你是否看得懂,如果看不懂的话,那就运行一下代码,然后反复揣摩,你一定会更加深刻地理解本节所讲解的内容的:[code13]@echo offfor /f "delims=, tokens=1,3-4,*" %%i in (test.txt) do echo %%i %%j %%k %%lpause(4) 跳过无关内容,直奔主题:skip=n 很多时候,有用的信息并不是贯穿文本内容的始终,而是位于第N行之后的行内,为了提高文本处理的效率,或者不受多余信息的干扰,for /f 允许你跳过这些无用的行,直接从第N+1行开始处理,这个时候,就需要使用参数 skip=n,其中,n是一个正整数,表示要跳过的行数。例如:[code14]@echo offfor /f "skip=2" %%i in (test.txt) do echo %%ipause这段代码将跳过头两行内容,从第3行起显示test.txt中的信息。(5) 忽略以指定字符打头的行:eol=在cmd窗口中敲入:for /?,相关的解释为:eol=c -指一个行注释字符的结尾(就一个)FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k会分析 myfile.txt 中的每一行,忽略以分号打头的那些行……第一条解释狗屁不通,颇为费解:行注释字符的结尾是什么意思?“(就一个)”怎么回事?结合第二条解释,才知道eol有忽略指定行的功能。但是,这两条解释是互相矛盾的:到底是忽略以指定字符打头的行,还是忽略以指定字符结尾的行?实践是检验真理的唯一标准,还是用代码来检验一下eol的作用吧:[code15]@echo offfor /f "eol=;" %%i in (test.txt) do echo %%ipause结果,那些以分号打头的行没有显示出来。由此可见,第二条解释是正确的,eol= 的准确含义是:忽略以指定字符打头的行。而第一条的“结尾”纯属微软在信口开河。那么,“(就一个)”又作何解释呢?试试这个代码:[code16]@echo offfor /f "eol=,;" %%i in (test.txt) do echo %%ipause此时,屏幕上出现“此时不应有" ;"。”的报错信息。可见,在指定字符的时候,只能指定1个——在很多时候,我对这样的设计颇有微词而又无可奈何:为什么只能指定1个而不是多个?要忽略多个还得又是if又是findstr加管道来多次过滤,那效率实在太低下了——能用到的功能基本上都提供,但是却又做不到更好,批处理,你的功能为什么那么弱?不知道大家注意到没有,如果test.txt中有以分号打头的行,那么,这些行在代码[code14]的执行结果中将凭空消失。原来,for /f 语句是默认忽略以分号打头的行内容的,正如它默认以空格键或跳格键作为字符串的切分字符一样。(注:eol=;这种默认设置,在delims=;时变得无效。)很多时候,我们可以充分利用这个特点,比如,在设计即将用for读取的配置文件的时候,可以在注释文字的行首加上分号,例如在编写病毒文件查杀代码的时候,可以通过for语句来读取病毒文件列表,那么,病毒文件列表.ini这个配置文件可以这样写:;以下是常见的病毒文件,请见一个杀一个;copyleft:没有qq.exemsn.exeiexplore.exe如果要取消这个默认设置,可选择的办法是: 1、为eol=指定另外一个字符; 2、使用 for /f "eol=" 语句,也就是说,强制指定字符为空,就像对付delims=一样。(6)如何决定该使用 for /f 的哪种句式?(兼谈usebackq的使用)for /f %%i in (……) do (……) 语句有好几种变形语句,不同之处在于第一个括号里的内容:有的是用单引号括起来,有的是用双引号包住,有的不用任何符号包裹,具体格式为:1、for /f %%i in (文件名) do (……)2、for /f %%i in ('命令语句') do (……)3、for /f %%i in ("字符串") do (……)看到这里,我想很多人可能已经开始犯了迷糊了:如果要解决一个具体问题,面对这么多的选择,如何决定该使用哪一条呢?实际上,当我在上面罗列这些语句的时候,已经有所提示了,不知道你是否注意到了。如果你一时无法参透其中奥妙,那也无妨,请听我一一道来便是。1、当你希望读取文本文件中的内容的话,第一个括号中不用任何符号包裹,应该使用的是第1条语句;例如:你想显示test.txt中的内容,那么,就使用 for /f %%i in (test.txt) do echo %%i; 2、当你读取的是命令语句执行结果中的内容的话,第一个括号中的命令语句必须使用单引号包裹,应该使用的是第2条语句;例如:你想显示当前目录下文件名中含有test字符串的文本文件的时候,应该使用 for /f %%i in ('dir /a-d /b test.txt') do echo %%i 这样的语句; 3、当你要处理的是一个字符串的时候,第一个括号中的内容必须用双引号括起来, 应该是用的是第3条语句;例如:当你想把bbs.bathome.net这串字符中的点号换为短横线并显示出来的话,可以使用 for /f "delims=. tokens=1-3" %%i in ("bbs.bathome.net") do echo %%i-%%j-%%k 这样的语句。很显然,第一个括号里是否需要用符号包裹起来,以及使用什么样的符号包裹,取决于要处理的对象属于什么类型:如果是文件,则无需包裹;如果是命令语句,则用单引号包裹;如果是字符串,则使用双引号括起来。当然,事情并不是绝对如此,如果细心的你想到了批处理中难缠的特殊字符,你肯定会头大如斗。或许你头脑中灵光一闪,已经想到了一个十分头痛的问题:在第1条语句中,如果文件名中含有空格或&,该怎么办?照旧吗?拿个叫 test 1.txt 的文件来试试。你很快写好了代码,新建文件-->码字-->保存为批处理,前后费时不到1分钟:[code17]@echo offfor /f %%i in (test 1.txt) do echo %%ipause你兴冲冲地双击批处理,运行后,屏幕上出现了可耻的报错信息:系统找不到文件 test 。当你把 test 1.txt 换成 test&1.txt 后,更怪异的事情发生了:CMD窗口在你眼前一闪而过,然后,优雅地消失了。你可能觉得自己的代码写错了某些符号,你再仔细的检查了一次,确认没有笔误,然后,你再次双击批处理,结果问题照旧;你开始怀疑其他程序对它可能有影响,于是关掉其他窗口,再运行了一次,问题依旧;你不服气地连续运行了好几次,还是同样的结果。怪哉!你一拍大腿,猛然想起了一件事:当路径中含有特殊字符的时候,应该使用引号把路径括起来。对,就是它了!但是,当你把代码写出来之后,你很快就焉了:for /f %%i in ("test 1.txt") do echo %%i,这不就是上面提到的第3条 for /f 命令的格式吗?批处理会把 test 1.txt 这个文件名识别为字符串啊!你百无聊赖地在CMD窗口中输入 for /? ,并重重地敲下了回车,漫无目的地在帮助信息中寻找,希望能找到点什么。结果还真让你到了点什么。你看到了这样的描述:usebackq - 指定新语法已在下类情况中使用: 在作为命令执行一个后引号的字符串并且一个单引号字符为文字字符串命令并允许在 filenameset 中使用双引号扩起文件名称。但是,通读一遍之后,你却如坠五里雾中,不知所云。还好,下面有个例子,并配有简单的说明:FOR /F "usebackq delims==" %i IN (set) DO @echo %i会枚举当前环境中的环境变量名称。你仔细对比了for /f语句使用usebackq和不使用usebackq时在写法上的差别,很快就找到了答案:当使用了usebackq之后,如果第一个括号中是一条命令语句,那么,就要把单引号'改成后引号`(键盘左上角esc键下面的那个按键,与~在同一键位上)。回过头去再看那段关于usebackq的描述,字斟句酌,反复揣摩,终于被你破译了天机:usebackq 是一个增强型参数,当使用了这个参数之后,原来的for语句中第一个括号内的写法要做如下变动:如果第一个括号里的对象是一条命令语句的话,原来的单引号 '要改为后引号`;如果第一个括号里的对象是字符串的话,原来的双引号"要改为单引号';如果第一个括号里的对象是文件名的话,要用双引号"括起来。验证一下,把[code17]改写成如下代码:[code18]@echo offfor /f "usebackq" %%i in ("test 1.txt") do echo %%ipause测试通过!此时,你很可能会仰天长叹:Shit,微软这该死的机器翻译!至于把[code17]代码中的空格换成&后,CMD窗口会直接退出,那是因为&是复合语句的连接符,CMD在预处理的时候,会优 先把&前后两部分作为两条语句来解析,而不是大家想象中的一条完整的for语句,从而产生了严重的语法错误。因为牵涉到预处理机制问题,不属于本 节要讨论的内容,在此不做详细讲解。这个时候,我们会吃惊地发现,区区一条for语句,竟然有多达6种句型:复制代码1、for /f %%i in (文件名) do (……)2、for /f %%i in ('命令语句') do (……)3、for /f %%i in ("字符串") do (……)4、for /f "usebackq" %%i in ("文件名") do (……)5、for /f "usebackq" %%i in (命令语句) do (……)6、for /f "usebackq" %%i in ('字符串') do (……)复制代码其中,4、5、6由1、2、3发展而来,他们有这样的对应关系:1-->4、2-->5、3-->6。好在后3种情形并不常用,所以,牢牢掌握好前三种句型的适用情形就可以了,否则,要在这么多句型中确定选择哪一条语句来使用,还真有点让人头脑发懵。至于 for /f 为什么要增加usebacq参数,我只为第4条语句找到了合理的解释:为了兼容文件名中所带的空格或&。它在第5、6条语句中为什么还有存在的必 要,我也不是很明白,这有待于各位去慢慢发现。(注:这种解释虽然有点不靠谱,但也算一种解释,大家将就看看吧。启用usebackq选项的时候,“文件 名”取代了“字符串”,那么“字符串”只好改变为“命令语句”,“命令语句”只好用后引号重新表示——简而言之,是“文件名”符号改变引起的蝴蝶效应。言 外之意:usebackq除了在处理带空格的文件名时会用到外,根本就没有其它的出场机会和存在价值。)四、翻箱倒柜遍历文件夹:for /r(一)for /r 的作用及用法按照帮助信息里文绉绉的说法,for /r 的作用是“递归”,我们换一个通俗一点的,叫“遍历文件夹”,它会遍历指定目录和子目录下的所有文件和文件夹。更详细的解释就是:在下面的语句中,如果“元素集合”中只是一个点号,那么,这条语句的作用就是:列举“目录”及其之下的所有子目录,对这些文件夹都 执行“命令语句集合”中的命令语句。其作用与嵌套进 for /f 复合语句的 "dir /ad /b /s 路径" 功能类似。如果省略了“目录”,将在当前目录下执行前面描述的操作。for /r 目录 %%i in (元素集合) do 命令语句集合先来个代码增强一下印象:[code21]@echo offfor /r d:\test %%i in (.) do echo %%ipause执行的结果如下所示:d:\test.d:\test\1.d:\test\2.d:\test\3.效果就是显示 d:\test 目录及其之下是所有子目录的路径,其效果与 dir /ad /b /s d:\test 类似。若要说到两者的区别,可以归纳出3点: 1、for /r 列举出来的路径最后都带有斜杠和点号,而 dir 语句则没有,会对获取到的路径进行进一步加工产生影响; 2、for /r 不能列举带隐藏属性的目录,而 dir 语句则可以通过指定 /a 后面紧跟的参数来获取带指定属性的目录,更加灵活; 3、若要对获取到的路径进行进一步处理,则需要把 dir 语句放入 for /f 语句中进行分析,写成 for /f %%i in ('dir /ad /b /s') do …… 的形式;由于 for /r 语句是边列举路径边进行处理,所以,在处理大量路径的时候,前期不会感到有停顿,而 for /f 语句则需要等到 dir /ad /b /s 语句把所有路径都列举完之后,再读入内存进行处理,所以,在处理大量路径的时候,前期会感到有明显的停顿。第2点差别很容易被大家忽视,导致用 for /r 列举路径的时候会造成遗漏;而第3点则会让大家有更直观的感受,很容易感觉到两者之间的差别。要是“元素集合”不是点号呢?那又如何?来看看这个代码:[code22]@echo offfor /r d:\test %%i in (a b c) do echo %%ipause运行的结果是:复制代码D:\test\1\aD:\test\1\bD:\test\1\cD:\test\2\aD:\test\2\bD:\test\2\cD:\test\3\aD:\test\3\bD:\test\3\c复制代码原来,它的含义是:列举 d:\test 及其所有的子目录,对所有的目录路径都分别添加a、b、c之后再显示出来。再来看一个代码:[code23]@echo offfor /r d:\test %%i in (*.txt) do echo %%ipause运行结果是:复制代码D:\test\test.txtD:\test\1\1.txtD:\test\1\2.txtD:\test\2\a.txtD:\test\2\b.txtD:\test\3\1.txt复制代码这段代码的含义是:列举 d:\test 及其所有子目录下的txt文本文件(以.txt结尾的文件夹不会被列出来)。我们再回过头来归纳一下这个语句的作用:for /r 目录 %%i in (元素集合) do 命令语句集合上面语句的作用是:1、列举“目录”及该目录路径下所有子目录,并把列举出来的目录路径和元素集合中的每一个元素拼接成形如“目录路径\元素”格式的新字符串,然后,对每一条这样的新字符串执行“命令语句集合”中的每一条命令; 特别的是:当“元素集合”带以点号分隔的通配符?或*的时候,把“元素集合”视为文件(不视为文件夹),整条语句的作用是匹配“目录”所指文件夹及其所有子文件夹下匹配的文件;若不以点号分隔,则把“元素集合”视为文件夹(不视为文件); 2、当省略掉“目录”时,则针对当前目录; 3、当元素集合中仅仅是一个点号的时候,将只列举目录路径;(二)for /r 还是 dir /ad /b /s?列举目录时该如何选择前面已经说过,当列举目录时,for /r 和 dir /ad /b /s 的效果是非常类似的,这就产生了一个问题:当我要获取目录路径并进行进一步处理的时候,两者之间,我该如何选择?这个问题,前面其实已经有过一些讨论,现在我们再来作详细的分析。我们来看一下两者各自的优缺点:1、for /r:1)优点:① 只通过1条语句就可以同时实现获取目录路径和处理目录路径的操作; ② 遍历文件夹的时候,是边列举边处理的,获取到一条路径就处理一条路径,内存占用小,处理大量路径的时候不会产生停顿感;2)缺点:① 不能获取到带隐藏属性的目录,会产生遗漏; ② 不能获取带指定属性的目录2、dir /ad /s:1)优点:① 能一次性获取带任意属性的目录,不会产生遗漏; ② 能通过指定不同的参数获取带任意属性的目录,更具灵活性。2)缺点:① dir /ad /s 语句仅能获取到目录路径,若要实现进一步的处理,还需要嵌入 for /f 语句中才能实现,写法不够简洁; ② 嵌入 for /f 语句之后,需要写成 for /f "delims=" %%i in ('dir /ad /b /s') do …… 的格式,受 for /f 语句运行机制的制约,需要先列举完所有的路径放入内存之后,才能对每一条路径进行进一步的处理,处理大量路径时,内存占用量偏大,并且在前期会产生明显的 停顿感,用户体验度不够好;综合上述分析,可以做出如下选择:1、若仅仅是为了获取某文件夹及其所有子文件夹的路径的话,请选择 dir /ad /b /s 语句; 2、若需要过滤带隐藏属性的文件夹的话,for /r 和 dir 语句都可以实现,但 for /r 内存占用小,处理速度快,是上上之选; 3、若需要获取所有文件夹,则除了 dir /ad /b /s 外,别无选择,因为 for /r 语句会遗漏带隐藏属性的文件夹;在实际的使用中,我更喜欢使用 for /f 和 dir 的组合,因为它不会产生遗漏,并能给我带来更灵活的处理方式,唯一需要忍受的,就是它在处理大量路径时前期的停顿感,以及在这背后稍微有点偏高的内存占 用;在我追求速度且可以忽略带隐藏属性的目录的时候,我会换用 for /r 的方案,不过这样的情形不多——有谁会愿意为了追求速度而容忍遗漏呢?五、仅仅为了匹配第一层目录而存在:for /dfor /d 中 /d ,完整的含义是 /directory,本意是为了处理文件夹,它的完整语句应该是这样的:for /d %%i in (元素集合) do 命令语句集合当“元素集合”中包含有通配符?或*时,它会匹配文件夹,但是,相比 for /r 而言,这个时候的for /d,其作用就小得可怜了:它仅能匹配当前目录下的第一级文件夹,或是指定位置上的文件夹,而不能匹配更深层次的子文件夹。例如:for /d %%i in (d:\test*) do echo %%i 这样的语句 ,会匹配到形如:d:\test、d:\test1、d:\test2之类的文件夹,若不存在这样的路径,将不会有任何回显。当“元素集合”中不包含任何的通配符时,它的作用和 "for %%i in (元素集合) do 命令语句集合" 这样的语句别无二致。因此,for /d 的角色就变得很微妙了:当“元素集合”中包含通配符?或*时,它的作用就是匹配文件夹,此时,它仅能匹配当前目录下的第一级文件夹,或是指定位置上的文件夹,在层次深度上不及 for /r,但和 for /r 一样的坏脾气:不能匹配带隐藏属性的文件夹;在灵活性上不及for /f和dir的组合;当“元素集合”中不包含任何统配符的时候,它完全是 "for %%i in (元素集合) do ……" 语句的翻版,但是又稍显复杂。for /d 的作用是如此有限,我使用的次数是如此之少,以至于我一度找不到它的用武之地,认为它食之无味,弃之可惜,完全是鸡肋一块。某年某月,我在cmd窗口里写下了这样的代码:[code24]for /d %i in (test*) do @echo %i我的本意是想查看在我的临时目录下,长年累月的测试工作到底建立了多少测试文件夹,以便我随后把echo换成rd删除之。这个时候,我发现这条代码 是如此 的简洁,是 for /r 或 for和 dir /ad /b 的组合所无法替代的(echo换成rd就可以直接删除掉这些测试目录)。简洁的代码给我带来的喜悦仅仅持续了短短10几秒的时间,我便开始了迷惘——能用到for /d的类似情形,貌似少之又少且乏善可陈啊。(注:正如qzwqzw所言,for /r /d是可以一起使用的;【在for有限的4个参数中,据我所知只有/r /d可以一起使用】。例如:@echo offFor /r /d %%i in (*) do echo %%ipause>nul效果:显示当前目录下所有的文件夹【包括子文件夹】;等价于 "dir /ad /s /b"。for /r /d 其实是对 /d 参数的扩展,/d参数本身只能处理第一层文件夹,但是加上/r参数后就可以处理所有的子文件夹;for /r /d依然不能处理隐藏文件夹。这里给出使用for /r /d的一般条件:1.要对文件夹进行操作(dir /ad /s /b可以显示,但不能对文件夹进行操作);2.不处理隐藏文件夹(说到底,还是for /f 和dir结合的命令更强大些)。六、计数循环:for /l/l 者,/loop的缩写是也,从鸟语翻译过来,loop就是循环的意思。实际上,所有的for语句,都可以看成是一种“循环”,只是在/l中,特指按照指定次数进行循环罢了。for /l 语句的完整格式是这样的:for /l %%i in (x,y,z) do (……)在这个语句中,x、y和z都只能取整数,正负皆可,x指代起始值,y指代步长,z为终止值,具体含义为:从x开始计数,以y为步长,直至最接近 z的那个整数值为止,这之间有多少个数,do后的语句就执行多少次。举个具体的例子:[code25]for /l %%i in (1,2,10) do echo bathome在以上的代码中,初始值是1,步长为2,终止值为10,表明计数从1开始,每隔2个数计算一次,直至最接近10的那个整数,罗列出来,就是1,3,5,7,9,再下一个就是11,超过10了,不再计算在内,所以,do后的语句只执行5次,将连续显示5个bathome。实际上,x,y和z的值可正可负,甚至为0,限制非常宽松: 1、步长y的值不能为0; 2、当步长y的值为正整数时,终止值z不能小于初始值x; 3、当步长y的值为负整数的时候,终止值z不能大于初始值x。换而言之,必须保证in和do之间能取到一个有效的数组序列。例如:[code26]for /l %%i in (-1,2,5) do echo bathome[code27]for /l %%i in (5,-2,-1) do echo bathome以上两条代码的功能完全一样,都将显示4次bathome,区别就在于[code26]是正序计算,而[code27]是逆序计数而已。以下几条代码都是有问题的:[code28]for /l %%i in (1,0,1) do echo bathome[code29]for /l %%i in (2,1,1) do echo bathome[code30]for /l %%i in (1,-1,2) do echo bathome其中,[code28]违反了步长不能为0的限制,将陷入无限循环中;[code29]和[code30]都犯了同样的错误:无法获得有效的数列元素,导致in和do之间取到的值为空元素,从而使得整条for语句无从执行。当大家明白了 for /l 的具体功能之后,是否会想到了与它有异曲同工之妙的goto循环语句呢?似乎,for /l 和 goto 循环语句可以相互替换?一般而言,for /l语句可以换成goto循环,但是,goto循环并不一定能被 for /l 语句替换掉。具体原因,请大家仔细想想,我在此不再详细解说,只是就大家非常关心的一个问题提供一个简洁的答案,那就是:什么时候该用 for /l 计数循环,而什么时候又该用goto条件循环?答案非常简单:当循环次数确定的时候,首选 for /l 语句,也可使用goto语句但不推荐;当循环次数不确定的时候,用goto语句将是唯一的选择,因为,这个时候需要用if之类的条件语句来判断何时结束goto跳转。
2025年04月22日
225 阅读
0 评论
0 点赞
2025-04-22
批处理把一个文件夹下包含子目录的所有文件复制到另一个文件夹下
需求就是这么奇怪,计划是把一个文件夹下的所有文件包括子目录下的,全部复制出来。试了批处理,可以这样写。我这个命令需要在cmd 下运行,不是bat文件for /f "delims=" %f in ('dir /s /b /a:-d') do ( @xcopy "%f" "E:\ALL" /f/y )简单解释下,也怕时间长了自己忘记了。dir /s /b /a:-d 列出所有文件,不包含目录另外csdn上这人写的真好,特别的详细,感谢!https://www.cnblogs.com/DswCnblog/p/5435300.html
2025年04月22日
92 阅读
0 评论
0 点赞
2025-04-19
胆结石住院(二)
作为这一个系列,继续更新下治疗的过程。治疗在亚洲第一大医院,郑大一附院。 一、郑大一附院 感觉有必要简单介绍下一附院。一附院有4个院区,然后呢,医生是轮流在4个院区坐诊住院。一附院的住院治疗流程更加流水线一点,你把自己当工厂的商品,医生当工人,就很好适应一附院了,治疗的用药和治疗过程,基本各个医院都差不多,因为有疾病诊治指南,都是按手册走的。胆结石手术指南上写的就是切胆,不建议保胆。那为什么还要去一附院或者是大医院呢,首先大医院更规范,器械更先进,并发症控制更有力,最重要的是一附院的医生一天能做几十例胆结石手术,护士能护理百十床病人,这个经验不是小医院能有的。非技高唯手熟。 一.1 关于医生 关于怎么选择医生,我的经验实在不是很多。一般来说你看的那个医生,从住院到出院全程都是这个医生负责,手术也是这个医生做。我的建议是选择那些年轻的,主任医生,毕竟做手术也是个大体力活。 二、住院 住院的流程一般第一天检查,各种检查。胆结石的检查有彩超、ct、增强Ct、核磁、其他的各种验血、验尿等等。这一天禁食禁水。(刚住院新鲜感挺强,心情不错。) 第二天各种检查结果会到医生那里。然后医生会根据检查结果,给你开输液。胆结石最多的是保肝,营养液等。听我劝多吃多喝,因为后边你会连饿三天,每天上午输液,下午玩手机。(和上班一样。) 第四天,还是验血,如果正常,就要安排手术了。(心情已经不嘻嘻了。赶紧去洗个澡,可能以后2个月就洗不到了) 第五天,安排手术,医生会找你谈话,吓唬你。四级手术的话需要家属献血。全天饿着(心情更不嘻嘻,顺便想象自己最惨的样子,发誓功名利禄抛身后。) 第六天,躺着吧,会给你上监护。像个重症患者躺着就行了,这期间你会各种不舒服,还好不知道疼,医生会给上止疼药。(难受想哭。不要在意你的胆了,你原本就感觉不到他。割掉就是放弃。)抖音开始马后炮给你推送切除胆后的各种后遗症,不要在意失去的东西了。 第七天,下床和上刑没区别。庆幸有尿管,哥我想尿就尿(不想尿也得尿)。发现自己身上两条管两个袋子,好像二袋长老。 第八天,接受了,服软了,就这吧。每天输液,倒胆汁,去尿尿,不停的感慨老天不公,我是个可怜人。 第九天,第十天,第十一天,...在降低胆红素...在等待出院。(不堪回首,痛苦的事情总是记不住,等我想起来再补上) 三、出院 等胆红素降低后,没有其他不适就可以出院了。出院装备肚皮上一条管子和一个袋子。像拖个累赘。 四、关于是否切胆 看你情况了,如果胆功能没有了,就切了吧,如果还好,建议保留。我更倾向于保留。事实上好多医生不会去给你测胆功能,你要结合医生的建议有个自己的判断。另外腹部的二次手术难度会比一次增加更多;胆囊切除的人群也相当的庞大。能保则保,保不了别勉强。我至今仍在纠结这个问题? 五、关于胆结石产生原理 胆汁的作用主要是消化脂肪。胆汁是有肝脏生产的,产生的胆汁经肝内胆管流入胆囊,在胆囊里胆汁会被浓缩,消化能力变得更强。需要得时候,胆囊会收缩,把胆汁挤入胆总管,胆总管里的胆汁会在需要的时候由十二指肠乳头挤入肠道,然后和食物混合,完成消化。 胆结石一般是胆汁中的物质结晶形成, 胆汁中会形成各种块状物和絮状物,胆汁引流管中能看到的。形成部位可以在肝内胆道,胆囊,胆总管内。由于胆囊的汇聚,浓缩作用,结石更容易形成在胆囊。切除胆囊后胆汁汇聚在胆总管,结石就容易在胆管中形成。
2025年04月19日
73 阅读
0 评论
1 点赞
2025-04-19
胆结石前期(一)
胆结石已经基本痊愈了,原本一直想记录下这段经历,也许是因为好了伤疤忘了疼,也许是因为拖延症。生病期间查了好多胆结石的案例,太分散了,都是一点一点的片段,思来想去记录下这段生活总是有意义的,既能警醒自己,也为后来人有一个参考。 一、前期症状 好久好久以前就发现有胆结石,因为当时还很小,没有在意。这几年每到冬天就有概率疼痛,症状就是胸下腹部、正中央的位置疼痛,一直以为是胃痉挛。疼痛时间一般是早晨4-5点的时候,剧烈腹痛,治疗一般是输液,治标不治本。 二、发病前一年 最明显的变化就是消化不好了,屁超多,尿黄味大,连身上都是各种奇怪的味道。起初以为是年龄大了,现在看应该是肝脏的问题。这时候小的结石已经有从胆管就入肠道,但因为有堵塞,不是很通畅,压力大的时候会突然大量进入肠道,引起消化不良。 三、发病前2个月 发生一次胃痛,胆汁反流,做了胃镜,发现形成了很严重的胃黏膜烧伤。原因也是堵塞后突然冲开后,大量胆汁入肠道后返流胃。 四、发病当天 中午吃完牛肉,上腹部突然剧烈疼痛。这时是有较大结石落入胆管,堵塞胆管了 五、后续 尿越来越黄、屎发白、身体尤其是眼球发黄。并且越来越严重。精神变差,失眠。胆管已经完全堵死,胆汁入血了。 六、前期的治疗 前期的治疗都是以胃痛治疗的,吃的有西药和中药。全部无效。1、有医生推断是上腹部疼痛,主要还是胃的问题,胆的问题的话,应该是右下腹疼痛。(其实不完全正确啊,胆结石也会引起上腹部疼痛)2、有医生认为只要胆的位置不痛,就不用管。就是不疼不管,等疼了再说。(哎,只能说不完全对,身体是一个系统,消化是一个系统,一个部件出问题是会影响整体的)前期治疗的最大感受就是:不要有侥幸心理,该面对的一定要面对,躲也躲不过的。拖得久了,只会更麻烦。 七、最终诊断 确定为胆梗堵。肝部受损。其中直接胆红素高正常标准30多倍。最大的危害就是可能会肝衰竭。 八、总结患病的原因 根本原因是由于基因的问题,某些人就会更容易得胆结石,天劫你没办法的。次要原因是运动少,喝水少。多运动有助于结石掉入十二指肠,然后随粪便排出。多喝水会稀释胆汁,减少胆汁的浑浊度。诱因。有结石但是不发病的也很多。最重要的诱因就是心情啊。中医说肝气郁结,心情不好,都郁结了,胆汁还能好,生成的结石更大更不易排出。所以保持好心情,放下所有,所有都打搅不了我。
2025年04月19日
118 阅读
0 评论
0 点赞
2025-04-17
debian 安装nfs
apt install nfs-kernel-server -y1、先在服务器上安装nfs。systemctl status nfs-server2、检查nfs状态mkdir /mnt/nfs-share3、创建共享目录chown nobody:nogroup /mnt/nfs-share chmod -R 777 /mnt/nfs-share4、设置目录权限,缺少这一步的话,最后会导致共享目录不可写vi /etc/exports5、编辑nfs配置文件,授权客户机/mnt/nfs-share 192.168.0.0/24(rw,sync,no_subtree_check)6、ip/24 是授权一个ip段。ip 的话是授权一个ip,只有授权的ip才能连接服务器的共享rw是读写,ro是只读,其他参数照抄exportfs -a7、使文件可用ufw allow from 192.168.0.0/24 to any port nfs8、配置防火墙,有系统防火墙的配置系统的,有本机的配置本机。apt install nfs-common9、客户机需要安装nfs-commommount 10.0.0.40:/mnt/nfs-share /mnt/nfs-skyserver10、挂载到本地目录
2025年04月17日
207 阅读
0 评论
0 点赞
2025-04-10
debian12 安装navidrome
因为实在不喜欢用那么多种音乐app 了,所以打算自建一个。搜了好多都是docker ,自己的小vps 性能实在不好,就打算直接装deb 试试。记录下过程。1、先去github下载deb 包,最新版本是0.55.2,提供下链接: Test 2、因为navidrome 依赖ffmpeg。先安装以下apt install vim ffmpeg3、然后安装deb包。dpkg -i navidrome_0.55.2_linux_amd64.deb4、记录下关键信息log文件默认在/var/lib/navidromeconfig文件在/var/navidrome/navidrome.toml5、编辑/var/navidrome/navidrome.toml修改MusicFolder 为你的音乐文件夹6、启动navidromesystemctl enable --now navidrome7、查看下运行状况systemctl status navidrome8、然后就可以了,登录 ip:4533 设置下就可以了。
2025年04月10日
228 阅读
0 评论
0 点赞
2025-03-05
debian 上部署rustdesk
可以部署的其实是rustdesk的免费版本,pro版本需要付费的,不要选错了。GitHub地址:https://github.com/rustdesk/rustdesk-server/releases 目前的最新版本是1.14 .下载3个deb 表,分别是rustdesk-server-hbbr_1.1.14_amd64.debrustdesk-server-hbbs_1.1.14_amd64.debrustdesk-server-utils_1.1.14_amd64.deb然后dpkg -i rustdesk*.deb 安装deb包。然后在/var/lib/rustdesk-server/ 找到pub key 。
2025年03月05日
204 阅读
0 评论
0 点赞
2024-12-21
理光5503清除错误代码
先按主菜单键 --->复位键 -----输入806182按住C不动,就可以进入维修模式.选system sp --->5810# --->选对应的5810项,进入面在选1--->点execute--->exit , 先2--->点execute--->exit,在重启机子
2024年12月21日
216 阅读
0 评论
0 点赞
2024-11-16
访问共享文件夹,提示扩展错误
第一步:管理员运行PowerShell第二步输入:Set-SmbClientConfiguration -RequireSecuritySignature $false第三步输入:Set-SmbServerConfiguration -RequireSecuritySignature $false第三步重启
2024年11月16日
139 阅读
0 评论
0 点赞
1
2
...
26