<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Windows on 酒中仙</title><link>https://hanguangwu.github.io/blog/tags/windows/</link><description>Recent content in Windows on 酒中仙</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><copyright>hanguangwu</copyright><lastBuildDate>Sun, 25 Jan 2026 20:34:25 -0800</lastBuildDate><atom:link href="https://hanguangwu.github.io/blog/tags/windows/index.xml" rel="self" type="application/rss+xml"/><item><title>Windows 11 双 GitHub 账号使用指南</title><link>https://hanguangwu.github.io/blog/p/windows-11-%E5%8F%8C-github-%E8%B4%A6%E5%8F%B7%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/</link><pubDate>Sun, 25 Jan 2026 20:34:25 -0800</pubDate><guid>https://hanguangwu.github.io/blog/p/windows-11-%E5%8F%8C-github-%E8%B4%A6%E5%8F%B7%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/</guid><description>&lt;h1 id="windows-11-双github账号使用指南"&gt;Windows 11 双GitHub账号使用指南
&lt;/h1&gt;&lt;h2 id="前言"&gt;前言
&lt;/h2&gt;&lt;p&gt;你是否和我一样，有两个 GitHub 账号？一个用于协作团队项目，另一个用于个人创作。想让它们在本地和远端完全隔离，互不干扰？&lt;/p&gt;
&lt;p&gt;问题是，Git 默认用全局 &lt;code&gt;user.name&lt;/code&gt; 和 &lt;code&gt;user.email&lt;/code&gt;，这会让提交记录看起来混淆身份。更复杂的是，SSH 密钥是权限的关键，每个密钥只能归属于一个账号。电脑默认使用一个 SSH key 连接 github.com，也导致只能无密码访问其中一个账号。&lt;/p&gt;
&lt;h2 id="双账号配置"&gt;双账号配置
&lt;/h2&gt;&lt;p&gt;分别下载一个 GitHub Desktop 和 UGit，然后登录相应的账号，再通过 batch 脚本切换账号。&lt;/p&gt;
&lt;h3 id="通过bat文件实现手动切换全局配置"&gt;通过.bat文件实现手动切换全局配置
&lt;/h3&gt;&lt;p&gt;下面这个简单的批处理脚本可以让用户输入账户名，然后根据不同的账户名设置对应的全局配置。例如：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;span class="lnt"&gt;23
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bat" data-lang="bat"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;echo&lt;/span&gt; off
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;setlocal&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 提示输入账户名称&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="k"&gt;/p&lt;/span&gt; &lt;span class="nv"&gt;account&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;请输入账户名（比如：Account1 或 Account2）:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 先清除已有的 user.name 和 user.email&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global --unset user.name
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global --unset user.email
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 根据不同账户设置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="k"&gt;/i&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;%account%&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Account1&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; git config --global user.name &lt;span class="s2"&gt;&amp;#34;你的账户1名字&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; git config --global user.email &lt;span class="s2"&gt;&amp;#34;youraccount1@example.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="k"&gt;/i&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;%account%&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Account2&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; git config --global user.name &lt;span class="s2"&gt;&amp;#34;你的账户2名字&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; git config --global user.email &lt;span class="s2"&gt;&amp;#34;youraccount2@example.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; 未识别的账户名，请确保输入正确。
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;pause&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;endlocal&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;这样运行脚本后，你会看到提示输入账户名，然后它会根据你的输入设置对应的全局git配置。你可以根据需要调整账户名和邮箱。&lt;/p&gt;
&lt;h2 id="使用批处理文件自动提交git代码"&gt;使用批处理文件自动提交git代码
&lt;/h2&gt;&lt;p&gt;我需要一个Windows 11下的批处理（batch）脚本，实现清空并重新设置Git提交身份（用户名/邮箱）、切换到指定目录、自动以时间戳为提交信息完成Git代码提交，同时补充完善的异常处理和操作反馈。&lt;/p&gt;
&lt;h3 id="实现思路"&gt;实现思路
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;先清空Git全局用户名/邮箱配置&lt;/li&gt;
&lt;li&gt;设置新的Git提交身份信息&lt;/li&gt;
&lt;li&gt;切换到指定工作目录并做合法性检查&lt;/li&gt;
&lt;li&gt;执行Git拉取（避免冲突）、添加、提交、推送操作&lt;/li&gt;
&lt;li&gt;用系统时间生成时间戳作为提交信息&lt;/li&gt;
&lt;li&gt;增加完善的错误处理和操作反馈&lt;/li&gt;
&lt;li&gt;脚本执行完成后暂停，方便查看执行结果&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="完整batch脚本"&gt;完整Batch脚本
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt; 10
&lt;/span&gt;&lt;span class="lnt"&gt; 11
&lt;/span&gt;&lt;span class="lnt"&gt; 12
&lt;/span&gt;&lt;span class="lnt"&gt; 13
&lt;/span&gt;&lt;span class="lnt"&gt; 14
&lt;/span&gt;&lt;span class="lnt"&gt; 15
&lt;/span&gt;&lt;span class="lnt"&gt; 16
&lt;/span&gt;&lt;span class="lnt"&gt; 17
&lt;/span&gt;&lt;span class="lnt"&gt; 18
&lt;/span&gt;&lt;span class="lnt"&gt; 19
&lt;/span&gt;&lt;span class="lnt"&gt; 20
&lt;/span&gt;&lt;span class="lnt"&gt; 21
&lt;/span&gt;&lt;span class="lnt"&gt; 22
&lt;/span&gt;&lt;span class="lnt"&gt; 23
&lt;/span&gt;&lt;span class="lnt"&gt; 24
&lt;/span&gt;&lt;span class="lnt"&gt; 25
&lt;/span&gt;&lt;span class="lnt"&gt; 26
&lt;/span&gt;&lt;span class="lnt"&gt; 27
&lt;/span&gt;&lt;span class="lnt"&gt; 28
&lt;/span&gt;&lt;span class="lnt"&gt; 29
&lt;/span&gt;&lt;span class="lnt"&gt; 30
&lt;/span&gt;&lt;span class="lnt"&gt; 31
&lt;/span&gt;&lt;span class="lnt"&gt; 32
&lt;/span&gt;&lt;span class="lnt"&gt; 33
&lt;/span&gt;&lt;span class="lnt"&gt; 34
&lt;/span&gt;&lt;span class="lnt"&gt; 35
&lt;/span&gt;&lt;span class="lnt"&gt; 36
&lt;/span&gt;&lt;span class="lnt"&gt; 37
&lt;/span&gt;&lt;span class="lnt"&gt; 38
&lt;/span&gt;&lt;span class="lnt"&gt; 39
&lt;/span&gt;&lt;span class="lnt"&gt; 40
&lt;/span&gt;&lt;span class="lnt"&gt; 41
&lt;/span&gt;&lt;span class="lnt"&gt; 42
&lt;/span&gt;&lt;span class="lnt"&gt; 43
&lt;/span&gt;&lt;span class="lnt"&gt; 44
&lt;/span&gt;&lt;span class="lnt"&gt; 45
&lt;/span&gt;&lt;span class="lnt"&gt; 46
&lt;/span&gt;&lt;span class="lnt"&gt; 47
&lt;/span&gt;&lt;span class="lnt"&gt; 48
&lt;/span&gt;&lt;span class="lnt"&gt; 49
&lt;/span&gt;&lt;span class="lnt"&gt; 50
&lt;/span&gt;&lt;span class="lnt"&gt; 51
&lt;/span&gt;&lt;span class="lnt"&gt; 52
&lt;/span&gt;&lt;span class="lnt"&gt; 53
&lt;/span&gt;&lt;span class="lnt"&gt; 54
&lt;/span&gt;&lt;span class="lnt"&gt; 55
&lt;/span&gt;&lt;span class="lnt"&gt; 56
&lt;/span&gt;&lt;span class="lnt"&gt; 57
&lt;/span&gt;&lt;span class="lnt"&gt; 58
&lt;/span&gt;&lt;span class="lnt"&gt; 59
&lt;/span&gt;&lt;span class="lnt"&gt; 60
&lt;/span&gt;&lt;span class="lnt"&gt; 61
&lt;/span&gt;&lt;span class="lnt"&gt; 62
&lt;/span&gt;&lt;span class="lnt"&gt; 63
&lt;/span&gt;&lt;span class="lnt"&gt; 64
&lt;/span&gt;&lt;span class="lnt"&gt; 65
&lt;/span&gt;&lt;span class="lnt"&gt; 66
&lt;/span&gt;&lt;span class="lnt"&gt; 67
&lt;/span&gt;&lt;span class="lnt"&gt; 68
&lt;/span&gt;&lt;span class="lnt"&gt; 69
&lt;/span&gt;&lt;span class="lnt"&gt; 70
&lt;/span&gt;&lt;span class="lnt"&gt; 71
&lt;/span&gt;&lt;span class="lnt"&gt; 72
&lt;/span&gt;&lt;span class="lnt"&gt; 73
&lt;/span&gt;&lt;span class="lnt"&gt; 74
&lt;/span&gt;&lt;span class="lnt"&gt; 75
&lt;/span&gt;&lt;span class="lnt"&gt; 76
&lt;/span&gt;&lt;span class="lnt"&gt; 77
&lt;/span&gt;&lt;span class="lnt"&gt; 78
&lt;/span&gt;&lt;span class="lnt"&gt; 79
&lt;/span&gt;&lt;span class="lnt"&gt; 80
&lt;/span&gt;&lt;span class="lnt"&gt; 81
&lt;/span&gt;&lt;span class="lnt"&gt; 82
&lt;/span&gt;&lt;span class="lnt"&gt; 83
&lt;/span&gt;&lt;span class="lnt"&gt; 84
&lt;/span&gt;&lt;span class="lnt"&gt; 85
&lt;/span&gt;&lt;span class="lnt"&gt; 86
&lt;/span&gt;&lt;span class="lnt"&gt; 87
&lt;/span&gt;&lt;span class="lnt"&gt; 88
&lt;/span&gt;&lt;span class="lnt"&gt; 89
&lt;/span&gt;&lt;span class="lnt"&gt; 90
&lt;/span&gt;&lt;span class="lnt"&gt; 91
&lt;/span&gt;&lt;span class="lnt"&gt; 92
&lt;/span&gt;&lt;span class="lnt"&gt; 93
&lt;/span&gt;&lt;span class="lnt"&gt; 94
&lt;/span&gt;&lt;span class="lnt"&gt; 95
&lt;/span&gt;&lt;span class="lnt"&gt; 96
&lt;/span&gt;&lt;span class="lnt"&gt; 97
&lt;/span&gt;&lt;span class="lnt"&gt; 98
&lt;/span&gt;&lt;span class="lnt"&gt; 99
&lt;/span&gt;&lt;span class="lnt"&gt;100
&lt;/span&gt;&lt;span class="lnt"&gt;101
&lt;/span&gt;&lt;span class="lnt"&gt;102
&lt;/span&gt;&lt;span class="lnt"&gt;103
&lt;/span&gt;&lt;span class="lnt"&gt;104
&lt;/span&gt;&lt;span class="lnt"&gt;105
&lt;/span&gt;&lt;span class="lnt"&gt;106
&lt;/span&gt;&lt;span class="lnt"&gt;107
&lt;/span&gt;&lt;span class="lnt"&gt;108
&lt;/span&gt;&lt;span class="lnt"&gt;109
&lt;/span&gt;&lt;span class="lnt"&gt;110
&lt;/span&gt;&lt;span class="lnt"&gt;111
&lt;/span&gt;&lt;span class="lnt"&gt;112
&lt;/span&gt;&lt;span class="lnt"&gt;113
&lt;/span&gt;&lt;span class="lnt"&gt;114
&lt;/span&gt;&lt;span class="lnt"&gt;115
&lt;/span&gt;&lt;span class="lnt"&gt;116
&lt;/span&gt;&lt;span class="lnt"&gt;117
&lt;/span&gt;&lt;span class="lnt"&gt;118
&lt;/span&gt;&lt;span class="lnt"&gt;119
&lt;/span&gt;&lt;span class="lnt"&gt;120
&lt;/span&gt;&lt;span class="lnt"&gt;121
&lt;/span&gt;&lt;span class="lnt"&gt;122
&lt;/span&gt;&lt;span class="lnt"&gt;123
&lt;/span&gt;&lt;span class="lnt"&gt;124
&lt;/span&gt;&lt;span class="lnt"&gt;125
&lt;/span&gt;&lt;span class="lnt"&gt;126
&lt;/span&gt;&lt;span class="lnt"&gt;127
&lt;/span&gt;&lt;span class="lnt"&gt;128
&lt;/span&gt;&lt;span class="lnt"&gt;129
&lt;/span&gt;&lt;span class="lnt"&gt;130
&lt;/span&gt;&lt;span class="lnt"&gt;131
&lt;/span&gt;&lt;span class="lnt"&gt;132
&lt;/span&gt;&lt;span class="lnt"&gt;133
&lt;/span&gt;&lt;span class="lnt"&gt;134
&lt;/span&gt;&lt;span class="lnt"&gt;135
&lt;/span&gt;&lt;span class="lnt"&gt;136
&lt;/span&gt;&lt;span class="lnt"&gt;137
&lt;/span&gt;&lt;span class="lnt"&gt;138
&lt;/span&gt;&lt;span class="lnt"&gt;139
&lt;/span&gt;&lt;span class="lnt"&gt;140
&lt;/span&gt;&lt;span class="lnt"&gt;141
&lt;/span&gt;&lt;span class="lnt"&gt;142
&lt;/span&gt;&lt;span class="lnt"&gt;143
&lt;/span&gt;&lt;span class="lnt"&gt;144
&lt;/span&gt;&lt;span class="lnt"&gt;145
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-batch" data-lang="batch"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;echo&lt;/span&gt; off
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chcp 65001 &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;nul &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt; :: 设置编码为UTF-8，避免中文乱码
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;setlocal&lt;/span&gt; enabledelayedexpansion
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: ===================== 配置区域（请根据实际需求修改）=====================&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 新的Git用户名&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;GIT_USER_NAME=your_username&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 新的Git邮箱&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;GIT_USER_EMAIL=your_email@example.com&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 目标Git仓库目录（请替换为你的实际目录）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;GIT_WORK_DIR=D:\your_project_directory&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 可选：Git远程仓库名称（默认origin）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;GIT_REMOTE=origin&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 可选：Git分支名称（默认main，也可改为master）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;GIT_BRANCH=main&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: =========================================================================&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; ===================== Git自动提交脚本 =====================
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; 运行环境：Windows 11
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; 执行时间：&lt;span class="nv"&gt;%date%&lt;/span&gt; &lt;span class="nv"&gt;%time%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; ==========================================================
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 1. 清空Git全局用户名和邮箱配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; [1/6] 清空Git全局身份配置...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global --unset user.name
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global --unset user.email
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;!errorlevel!&lt;/span&gt; &lt;span class="ow"&gt;equ&lt;/span&gt; 0 &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ✅ 已清空Git全局用户名和邮箱配置
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ⚠️ 清空配置时出现警告（可能无原有配置），继续执行...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 2. 设置新的Git用户名和邮箱&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; [2/6] 设置新的Git身份信息...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global user.name &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;%GIT_USER_NAME%&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;!errorlevel!&lt;/span&gt; &lt;span class="ow"&gt;equ&lt;/span&gt; 0 &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ✅ 已设置Git用户名：&lt;span class="nv"&gt;%GIT_USER_NAME%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ❌ 设置用户名失败，脚本终止！
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pause&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;exit&lt;/span&gt; /b 1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git config --global user.email &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;%GIT_USER_EMAIL%&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;!errorlevel!&lt;/span&gt; &lt;span class="ow"&gt;equ&lt;/span&gt; 0 &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ✅ 已设置Git邮箱：&lt;span class="nv"&gt;%GIT_USER_EMAIL%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ❌ 设置邮箱失败，脚本终止！
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pause&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;exit&lt;/span&gt; /b 1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 3. 切换到目标Git仓库目录并检查合法性&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; [3/6] 切换到Git仓库目录...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="k"&gt;not&lt;/span&gt; &lt;span class="k"&gt;exist&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;%GIT_WORK_DIR%&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ❌ 目标目录不存在：&lt;span class="nv"&gt;%GIT_WORK_DIR%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pause&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;exit&lt;/span&gt; /b 1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;cd&lt;/span&gt; /d &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;%GIT_WORK_DIR%&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;!errorlevel!&lt;/span&gt; &lt;span class="ow"&gt;neq&lt;/span&gt; 0 &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ❌ 切换到目录失败：&lt;span class="nv"&gt;%GIT_WORK_DIR%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pause&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;exit&lt;/span&gt; /b 1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; ✅ 已切换到目录：&lt;span class="nv"&gt;%GIT_WORK_DIR%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 4. 检查是否为Git仓库&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; [4/6] 检查Git仓库合法性...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git rev-parse --is-inside-work-tree &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;nul &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;!errorlevel!&lt;/span&gt; &lt;span class="ow"&gt;neq&lt;/span&gt; 0 &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ❌ 当前目录不是Git仓库，请检查路径！
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pause&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;exit&lt;/span&gt; /b 1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; ✅ 确认是合法的Git仓库
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 5. 拉取远程最新代码（避免冲突）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; [5/6] 拉取远程[&lt;span class="nv"&gt;%GIT_BRANCH%&lt;/span&gt;]分支最新代码...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git pull &lt;span class="nv"&gt;%GIT_REMOTE%&lt;/span&gt; &lt;span class="nv"&gt;%GIT_BRANCH%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;!errorlevel!&lt;/span&gt; &lt;span class="ow"&gt;equ&lt;/span&gt; 0 &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ✅ 拉取远程代码成功
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ⚠️ 拉取代码出现警告（可能无远程分支或已最新），继续执行...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 6. 提交代码（生成时间戳作为提交信息）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; [6/6] 执行Git提交和推送...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 生成格式化时间戳（格式：YYYY-MM-DD_HH-MM-SS）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;/f&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;tokens=1-2 delims=/ &amp;#34;&lt;/span&gt; &lt;span class="se"&gt;%%&lt;/span&gt;a &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;%date%&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;month=&lt;/span&gt;&lt;span class="se"&gt;%%&lt;/span&gt;&lt;span class="s2"&gt;a&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;day=&lt;/span&gt;&lt;span class="se"&gt;%%&lt;/span&gt;&lt;span class="s2"&gt;b&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;/f&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;tokens=3 delims=/ &amp;#34;&lt;/span&gt; &lt;span class="se"&gt;%%&lt;/span&gt;c &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;%date%&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;year=&lt;/span&gt;&lt;span class="se"&gt;%%&lt;/span&gt;&lt;span class="s2"&gt;c&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;/f&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;tokens=1-2 delims=:. &amp;#34;&lt;/span&gt; &lt;span class="se"&gt;%%&lt;/span&gt;d &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;%time%&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;hour=&lt;/span&gt;&lt;span class="se"&gt;%%&lt;/span&gt;&lt;span class="s2"&gt;d&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;minute=&lt;/span&gt;&lt;span class="se"&gt;%%&lt;/span&gt;&lt;span class="s2"&gt;e&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="k"&gt;/f&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;tokens=3 delims=:. &amp;#34;&lt;/span&gt; &lt;span class="se"&gt;%%&lt;/span&gt;f &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;%time%&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;second=&lt;/span&gt;&lt;span class="se"&gt;%%&lt;/span&gt;&lt;span class="s2"&gt;f&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 补零处理（确保单数字时间为两位）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;!hour!&lt;/span&gt; &lt;span class="ow"&gt;lss&lt;/span&gt; 10 &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;hour=0!hour!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;!month!&lt;/span&gt; &lt;span class="ow"&gt;lss&lt;/span&gt; 10 &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;month=0!month!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;!day!&lt;/span&gt; &lt;span class="ow"&gt;lss&lt;/span&gt; 10 &lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;day=0!day!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;set&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;COMMIT_MSG=Auto commit at !year!-!month!-!day!_!hour!-!minute!-!second!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 添加所有修改的文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git add .
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;!errorlevel!&lt;/span&gt; &lt;span class="ow"&gt;equ&lt;/span&gt; 0 &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ✅ 已添加所有修改的文件到暂存区
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ⚠️ 添加文件时出现警告（可能无修改），继续执行...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 提交代码&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git commit -m &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;!COMMIT_MSG!&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;!errorlevel!&lt;/span&gt; &lt;span class="ow"&gt;equ&lt;/span&gt; 0 &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ✅ 提交成功，提交信息：!COMMIT_MSG!
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="c1"&gt;: 推送代码到远程&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; git push &lt;span class="nv"&gt;%GIT_REMOTE%&lt;/span&gt; &lt;span class="nv"&gt;%GIT_BRANCH%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="nv"&gt;!errorlevel!&lt;/span&gt; &lt;span class="ow"&gt;equ&lt;/span&gt; 0 &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ✅ 推送代码到远程[&lt;span class="nv"&gt;%GIT_REMOTE%&lt;/span&gt;/&lt;span class="nv"&gt;%GIT_BRANCH%&lt;/span&gt;]成功
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ❌ 推送代码失败，请检查网络或分支权限！
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;pause&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;exit&lt;/span&gt; /b 1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;echo&lt;/span&gt; ⚠️ 无代码修改，无需提交
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; ==========================================================
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; 🎉 脚本执行完成！
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; 执行时间：&lt;span class="nv"&gt;%date%&lt;/span&gt; &lt;span class="nv"&gt;%time%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;echo&lt;/span&gt; ==========================================================
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;pause&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;endlocal&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="脚本关键部分解释"&gt;脚本关键部分解释
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;配置区域&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;你需要修改&lt;code&gt;GIT_USER_NAME&lt;/code&gt;、&lt;code&gt;GIT_USER_EMAIL&lt;/code&gt;、&lt;code&gt;GIT_WORK_DIR&lt;/code&gt;这三个核心配置，其他配置可根据仓库实际情况调整（如分支名）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;chcp 65001&lt;/code&gt;：设置UTF-8编码，避免中文提交信息或目录名乱码。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Git身份配置&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;先执行&lt;code&gt;--unset&lt;/code&gt;清空原有配置，再用&lt;code&gt;--global&lt;/code&gt;设置新的全局用户名/邮箱，确保提交身份准确。&lt;/li&gt;
&lt;li&gt;增加&lt;code&gt;errorlevel&lt;/code&gt;检查，失败时终止脚本并提示。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;目录与仓库检查&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;先验证目标目录是否存在，再切换目录，最后检查是否为Git仓库（通过&lt;code&gt;git rev-parse --is-inside-work-tree&lt;/code&gt;），避免操作非Git目录。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;时间戳生成&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;解析系统&lt;code&gt;%date%&lt;/code&gt;和&lt;code&gt;%time%&lt;/code&gt;变量，格式化为&lt;code&gt;YYYY-MM-DD_HH-MM-SS&lt;/code&gt;格式，确保提交信息唯一且易识别。&lt;/li&gt;
&lt;li&gt;对单数字的时间（如9点→09点）做补零处理，保证格式统一。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Git操作流程&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git pull&lt;/code&gt;：先拉取远程最新代码，避免本地与远程冲突。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git add .&lt;/code&gt;：添加所有修改/新增的文件到暂存区。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git commit&lt;/code&gt;：用时间戳作为提交信息。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git push&lt;/code&gt;：推送到远程仓库。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;错误处理与反馈&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;每个步骤都有明确的成功/失败提示（✅/❌/⚠️），便于排查问题。&lt;/li&gt;
&lt;li&gt;非致命错误（如无原有配置、无代码修改）给出警告并继续执行，致命错误（如目录不存在）终止脚本。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="使用说明"&gt;使用说明
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;修改配置&lt;/strong&gt;：打开脚本，找到「配置区域」，替换为你的实际信息：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;GIT_USER_NAME&lt;/code&gt;：你的Git用户名（如github用户名）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GIT_USER_EMAIL&lt;/code&gt;：你的Git绑定邮箱。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GIT_WORK_DIR&lt;/code&gt;：Git仓库的本地目录（如&lt;code&gt;D:\projects\my_poem_project&lt;/code&gt;）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;运行脚本&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;将脚本保存为&lt;code&gt;git_auto_commit.bat&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;双击运行，或在CMD/PowerShell中执行：&lt;code&gt;git_auto_commit.bat&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;注意事项&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;确保Windows 11已安装Git并配置到系统环境变量（可在CMD中执行&lt;code&gt;git --version&lt;/code&gt;验证）。&lt;/li&gt;
&lt;li&gt;首次推送可能需要手动输入Git账号密码，或配置SSH密钥免密登录。&lt;/li&gt;
&lt;li&gt;脚本执行后会暂停，可查看所有操作日志，按任意键退出。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="总结"&gt;总结
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;脚本实现了「清空Git身份→设置新身份→切换目录→检查仓库→拉取代码→提交推送」的完整流程，适配Windows 11。&lt;/li&gt;
&lt;li&gt;提交信息采用格式化时间戳，确保唯一性和可读性。&lt;/li&gt;
&lt;li&gt;包含完善的错误处理和可视化反馈，新手也能轻松排查问题。&lt;/li&gt;
&lt;li&gt;配置区域与执行逻辑分离，只需修改少量参数即可适配不同项目。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="参考资料和链接"&gt;参考资料和链接
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://docs.github.com/en/authentication/connecting-to-github-with-ssh" target="_blank" rel="noopener"
&gt;GitHub 官方 SSH 文档&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.chengxulvtu.net/how-to-work-with-multiple-github-accounts-on-win11/" target="_blank" rel="noopener"
&gt;Win11 配置多个 GitHub 账号&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://git-scm.com/book/zh/v2/" target="_blank" rel="noopener"
&gt;Git 配置教程&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>新机必备——删除预装软件的程序Win11Debloat</title><link>https://hanguangwu.github.io/blog/p/%E6%96%B0%E6%9C%BA%E5%BF%85%E5%A4%87%E5%88%A0%E9%99%A4%E9%A2%84%E8%A3%85%E8%BD%AF%E4%BB%B6%E7%9A%84%E7%A8%8B%E5%BA%8Fwin11debloat/</link><pubDate>Wed, 15 Oct 2025 12:34:25 -0800</pubDate><guid>https://hanguangwu.github.io/blog/p/%E6%96%B0%E6%9C%BA%E5%BF%85%E5%A4%87%E5%88%A0%E9%99%A4%E9%A2%84%E8%A3%85%E8%BD%AF%E4%BB%B6%E7%9A%84%E7%A8%8B%E5%BA%8Fwin11debloat/</guid><description>&lt;h1 id="新机必备win11debloat"&gt;新机必备——Win11Debloat
&lt;/h1&gt;&lt;h2 id="简介"&gt;简介
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://github.com/Raphire/Win11Debloat" target="_blank" rel="noopener"
&gt;A simple, lightweight PowerShell script to remove pre-installed apps, disable telemetry, as well as perform various other changes to customize, declutter and improve your Windows experience. Win11Debloat works for both Windows 10 and Windows 11.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://zhtwnet.com/wp-content/uploads/2025/01/Win11Debloat.jpg"
loading="lazy"
alt="Win11Debloat"
&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class="link" href="https://github.com/Raphire/Win11Debloat" target="_blank" rel="noopener"
&gt;Win11Debloat&lt;/a&gt;&lt;/strong&gt; 是由 &lt;a class="link" href="https://github.com/Raphire" target="_blank" rel="noopener"
&gt;Jeffrey Raphire&lt;/a&gt; 開發的一款簡單、易用且輕量的 PowerShell 腳本，僅需一鍵即可刪除預先安裝的 Windows 膨脹軟體，使用 Win11Debloat，使用者可以停用遙測功能，並透過移除侵入性介面元素、廣告和右鍵功能表項目來簡化使用體驗。&lt;/p&gt;
&lt;p&gt;Windows 10 / 11 作業系統中預先安裝了大量的膨脹軟體應用程式和功能，這些應用程式和功能可能會影響系統的效能和使用者體驗，我們可藉由 Win11Debloat 來一鍵優化您的 Windows 10 / 11 作業系統。&lt;/p&gt;
&lt;p&gt;Win11Debloat 不需要手動檢視所有設定或逐一移除應用程式，而是簡化流程，讓您移除大部分預先安裝在作業系統中的應用程式，從而為您找回大量的可用空間。雖然腳本會刪除大部分預先安裝的應用程式，但請注意有些應用程式無法依預設移除，包括 Microsoft People、Microsoft XBox App 或 Microsoft YourPhone。&lt;/p&gt;
&lt;p&gt;腳本的其他值得注意的功能包括在 Windows 搜尋中停用 Bing、透過隱藏某些資料夾來清理檔案總管，以及停用常見於設定、開始功能表或鎖定螢幕中的提示和建議。上述的清理是針對 Windows 11 所做的，而 Windows 10 則是針對額外的功能，例如從右鍵功能表中移除「授予存取權限」、「包含在資料庫」和「分享」。&lt;/p&gt;
&lt;h2 id="win11debloat--一鍵刪除-windows-預先安裝的膨脹軟體"&gt;Win11Debloat – 一鍵刪除 Windows 預先安裝的膨脹軟體
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Win11Debloat 使用教學簡介：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Win11Debloat 不需要任何安裝過程或額外的 DLL 檔，將下載的壓縮檔解壓縮後直接執行批次檔 Run.bat 即可使用。&lt;/p&gt;
&lt;p&gt;連按兩下 Run.bat 檔案啟動腳本。接受 Windows UAC 提示，以系統管理員身分執行腳本，這是腳本運作的必要條件。將會開啟一個新的 PowerShell 視窗，顯示 Win11Debloat 選單。建議選擇「預設模式」或「自訂模式」繼續。&lt;/p&gt;
&lt;p&gt;(1) 預設模式: 套用預設設定（Default mode: Apply the default settings）&lt;/p&gt;
&lt;p&gt;(2) 自訂模式: 根據您的需求修改腳本（Custom mode: Modify the script to your needs）&lt;/p&gt;
&lt;p&gt;(3) 移除應用程式模式: 選擇並移除應用程式，無需進行其他變更（App removal mode: Select &amp;amp; remove apps, without making other changes）&lt;/p&gt;
&lt;p&gt;(0) 顯示更多資訊（Show more information）&lt;/p&gt;
&lt;p&gt;一般建議可以直接輸入 1 利用預設模式一鍵就能刪除 Windows 預先安裝的膨脹軟體，預設模式可讓您快速輕鬆地套用建議大多數使用者使用的變更，輸入 1 按下 Enter 顯示底下畫面&lt;/p&gt;
&lt;p&gt;&lt;img src="https://zhtwnet.com/wp-content/uploads/2025/01/Win11Debloat_1.jpg"
loading="lazy"
alt="Win11Debloat"
&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Win11Debloat 會進行以下變更（Win11Debloat will make the following changes）:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;– 移除預設選擇的應用程式，清單可在「Appslist.txt」檔案中找到（Remove the default selection of apps, the list can be found in the ‘Appslist.txt’ file.）&lt;br&gt;
– 停用遙測、診斷資料、活動歷程記錄、應用程式啟動追蹤和目標廣告（Disable telemetry, diagnostic data, app-launch tracking &amp;amp; targeted ads.）&lt;br&gt;
– 停用和移除 Windows 搜尋中的 Bing 搜尋和 Cortana（Disable &amp;amp; remove Bing search &amp;amp; Cortana in Windows search.）&lt;br&gt;
– 停用鎖定畫面上的提示與技巧 (這可能會變更您的鎖定畫面桌布)（Disable tips &amp;amp; tricks on the lockscreen. (This may change your lockscreen wallpaper)）&lt;br&gt;
– 停用「開始」、「設定」、「通知」、「檔案總管」等中的提示、技巧、建議和廣告（Disable tips, tricks, suggestions and ads in start, settings, notifications and more.）&lt;br&gt;
– 停用 Windows Copilot (Windows 11 組建 22621+)（Disable Windows Copilot. (Windows 11 build 22621+)）&lt;br&gt;
– 顯示已知檔案類型的副檔名（Show file extensions for known file types.）&lt;br&gt;
– 停用小工具服務並從工作列隱藏圖示（Disable the widget service &amp;amp; hide the icon from the taskbar.）&lt;br&gt;
– 從工作列隱藏聊天 (立即開會) 圖示（Hide the Chat (meet now) icon from the taskbar.）&lt;br&gt;
– 隱藏 Windows 檔案總管中的 3D 物件資料夾 (僅限 Windows 10)（Hide the 3D objects folder in Windows Explorer. (Windows 10 only)）&lt;/p&gt;
&lt;p&gt;按下 Enter 執行腳本，或按下 CTRL+C 結束（Press enter to execute the script or press CTRL+C to quit）…&lt;/p&gt;
&lt;p&gt;一旦按下 Enter 執行腳本之後，等待腳本執行完成後將顯示訊息「Script completed successfully!」代表已成功完成，即可按下任何鍵結束。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://zhtwnet.com/wp-content/uploads/2025/01/Win11Debloat_1_1.jpg"
loading="lazy"
alt="Win11Debloat"
&gt;&lt;/p&gt;
&lt;p&gt;輸入 2 進入自訂模式，出現底下主畫面&lt;/p&gt;
&lt;p&gt;&lt;img src="https://zhtwnet.com/wp-content/uploads/2025/01/Win11Debloat_2.jpg"
loading="lazy"
alt="Win11Debloat"
&gt;&lt;/p&gt;
&lt;p&gt;選項（Options）：&lt;br&gt;
(n) 不移除任何應用程式（Don’t remove any apps）&lt;br&gt;
(1) 只移除「Appslist.txt」中預設選擇的膨脹軟體應用程式（Only remove the default selection of bloatware apps from ‘Appslist.txt’）&lt;br&gt;
(2) 移除預設選取的膨脹軟體應用程式、郵件與行事曆應用程式、開發者應用程式和遊戲應用程式（Remove default selection of bloatware apps, aswell as mail &amp;amp; calendar apps, developer apps and gaming apps）&lt;br&gt;
(3) 選擇要移除和保留的應用程式（Select which apps to remove and which to keep）&lt;br&gt;
移除任何預先安裝的應用程式（Remove any pre-installed apps）? (n/1/2/3):&lt;/p&gt;
&lt;p&gt;根據您的需求來選擇輸入，倘若輸入 3 會顯示底下的主畫面&lt;/p&gt;
&lt;p&gt;&lt;img src="https://zhtwnet.com/wp-content/uploads/2025/01/Win11Debloat_3.jpg"
loading="lazy"
alt="Win11Debloat"
&gt;&lt;/p&gt;
&lt;p&gt;勾選右下角「Only show installed apps」僅顯示本台電腦已安裝的應用程式，根據您的需求勾選要刪除的軟體，也可以利用勾選左上方的核取方塊「Check/Uncheck all」來全部勾選或取消全部勾選，確認好之後再按下左下角的 [Confirm] 按鈕之後繼續進行移除工作。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://zhtwnet.com/wp-content/uploads/2025/01/Win11Debloat_3_1.jpg"
loading="lazy"
alt="Win11Debloat"
&gt;&lt;/p&gt;
&lt;p&gt;輸入 3 移除應用程式模式後會列出此軟體預設要移除的應用程式&lt;/p&gt;
&lt;p&gt;&lt;img src="https://zhtwnet.com/wp-content/uploads/2025/01/Win11Debloat_3.jpg"
loading="lazy"
alt="Win11Debloat"
&gt;&lt;/p&gt;
&lt;p&gt;勾選右下角「Only show installed apps」僅顯示本台電腦已安裝的應用程式，根據您的需求勾選要刪除的軟體，也可以利用勾選左上方的核取方塊「Check/Uncheck all」來全部勾選或取消全部勾選，確認好之後再按下左下角的 [Confirm] 按鈕之後繼續進行移除工作。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://zhtwnet.com/wp-content/uploads/2025/01/Win11Debloat_3_1.jpg"
loading="lazy"
alt="Win11Debloat"
&gt;&lt;/p&gt;
&lt;p&gt;輸入 0 顯示以下更多的詳細資訊，再按下任何鍵返回主畫面&lt;/p&gt;
&lt;p&gt;&lt;img src="https://zhtwnet.com/wp-content/uploads/2025/01/Win11Debloat_0.jpg"
loading="lazy"
alt="Win11Debloat"
&gt;&lt;/p&gt;
&lt;p&gt;建議您在使用 Win11Debloat 應用程式之前先建立還原點，以防遇到問題。&lt;/p&gt;
&lt;p&gt;Win11Debloat 所做的所有變更都可以輕鬆還原，幾乎所有的應用程式都可以透過 Microsoft Store 重新安裝。&lt;/p&gt;</description></item><item><title>Windows 批处理文件（.bat）应用详解与实用示例</title><link>https://hanguangwu.github.io/blog/p/windows-%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6.bat%E5%BA%94%E7%94%A8%E8%AF%A6%E8%A7%A3%E4%B8%8E%E5%AE%9E%E7%94%A8%E7%A4%BA%E4%BE%8B/</link><pubDate>Mon, 26 May 2025 12:34:25 +0800</pubDate><guid>https://hanguangwu.github.io/blog/p/windows-%E6%89%B9%E5%A4%84%E7%90%86%E6%96%87%E4%BB%B6.bat%E5%BA%94%E7%94%A8%E8%AF%A6%E8%A7%A3%E4%B8%8E%E5%AE%9E%E7%94%A8%E7%A4%BA%E4%BE%8B/</guid><description>&lt;h1 id="windows-批处理文件bat应用详解与实用示例"&gt;Windows 批处理文件（.bat）应用详解与实用示例
&lt;/h1&gt;&lt;h2 id="前言"&gt;前言
&lt;/h2&gt;&lt;p&gt;在 Windows 环境下，批处理文件（Batch file，扩展名 &lt;code&gt;.bat&lt;/code&gt;）是自动执行一系列命令和任务的强大工具。无论是自动化重复性工作、简化日常操作，还是批量管理系统设置，批处理脚本都能显著提高效率，减少人为错误，特别适合 Windows 11 用户日常运维和办公自动化。&lt;/p&gt;
&lt;p&gt;本文将从零开始，系统讲解 Windows 11 如何创建、编辑和运行批处理文件，并通过丰富示例展示其实际应用场景及写法技巧。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="一批处理文件简介与优势"&gt;一、批处理文件简介与优势
&lt;/h2&gt;&lt;h3 id="什么是批处理文件"&gt;什么是批处理文件？
&lt;/h3&gt;&lt;p&gt;批处理文件是一个包含 DOS 命令列表的纯文本文件，Windows 命令解释器（&lt;code&gt;cmd.exe&lt;/code&gt;）会按顺序执行其内容。它以 &lt;code&gt;.bat&lt;/code&gt; 或 &lt;code&gt;.cmd&lt;/code&gt; 为后缀名，通过运行批处理文件即可自动完成一系列手动输入命令。&lt;/p&gt;
&lt;h3 id="为什么使用批处理文件"&gt;为什么使用批处理文件？
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;自动执行重复性任务，节省时间和体力&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;保证任务执行的连贯性和一致性，减少人为失误&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;实现复杂多步操作的自动化&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;便携易分享，可在多台机器上运行相同脚本&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;方便管理文件、网络驱动器映射、程序启动等日常任务&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="二如何在-windows-11-创建和运行批处理文件"&gt;二、如何在 Windows 11 创建和运行批处理文件？
&lt;/h2&gt;&lt;h3 id="1-创建基本批处理文件"&gt;1. 创建基本批处理文件
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;按下 Windows 键，输入 &lt;code&gt;记事本&lt;/code&gt; 并打开。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;输入以下内容：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bat" data-lang="bat"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;ECHO&lt;/span&gt; OFF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ECHO&lt;/span&gt; Hi, this is my first batch file.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;PAUSE&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;说明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;@ECHO OFF&lt;/code&gt; 隐藏命令回显，只显示输出结果。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ECHO&lt;/code&gt; 用于打印消息。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PAUSE&lt;/code&gt; 命令窗口暂停，等待用户按任意键。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;点击“文件” → “另存为”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;文件名写为 &lt;code&gt;Test.bat&lt;/code&gt;，保存类型选择“所有文件 (&lt;em&gt;.&lt;/em&gt;)”，点击保存。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;双击 &lt;code&gt;Test.bat&lt;/code&gt;，你将在命令提示符窗口中看到欢迎信息。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="2-映射网络驱动器示例"&gt;2. 映射网络驱动器示例
&lt;/h3&gt;&lt;p&gt;自动映射网络共享路径为本地驱动器盘符：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bat" data-lang="bat"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;ECHO&lt;/span&gt; OFF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ECHO&lt;/span&gt; Create new F: drive mapping
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;net use F: \\NetworkPath /persistent:yes
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;PAUSE&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;把 &lt;code&gt;F:&lt;/code&gt; 替换成信用盘符&lt;/li&gt;
&lt;li&gt;&lt;code&gt;\\NetworkPath&lt;/code&gt; 替换成实际网络共享路径（如 &lt;code&gt;\\192.168.1.100\shared&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;保存为 &lt;code&gt;.bat&lt;/code&gt; 文件后运行即可自动连接。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="3-添加用户输入与交互"&gt;3. 添加用户输入与交互
&lt;/h3&gt;&lt;p&gt;批处理文件也能接收用户输入，实现交互式脚本：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bat" data-lang="bat"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;ECHO&lt;/span&gt; OFF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nl"&gt;START&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="k"&gt;/P&lt;/span&gt; &lt;span class="nv"&gt;input&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;Enter your name:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ECHO&lt;/span&gt; Hi &lt;span class="nv"&gt;%input%&lt;/span&gt;! Welcome to the event.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;PAUSE&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;GOTO&lt;/span&gt; &lt;span class="nl"&gt;START&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;SET /P&lt;/code&gt; 用于提示用户输入并将结果存到变量 &lt;code&gt;input&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GOTO START&lt;/code&gt; 实现循环交互，可以随时输入新名字。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="4-自动打开常用应用程序"&gt;4. 自动打开常用应用程序
&lt;/h3&gt;&lt;p&gt;帮你一次性启动多款常用软件，提升工作效率：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bat" data-lang="bat"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;ECHO&lt;/span&gt; OFF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;start&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;C:\Program Files\Google\Chrome\Application\chrome.exe&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;start&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;C:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;start&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;C:\Program Files\Slack\Slack.exe&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;start&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;C:\Program Files\ShareX\ShareX.exe&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;EXIT&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;注意用完整程序路径替换示例中的路径。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;start &amp;quot;&amp;quot;&lt;/code&gt; 中的双引号用于占位窗口标题。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h3 id="5-批处理实现文本替换示例"&gt;5. 批处理实现文本替换示例
&lt;/h3&gt;&lt;p&gt;假如您有文件 &lt;code&gt;code.txt&lt;/code&gt;，要将其中所有的 &lt;code&gt;oldtext&lt;/code&gt; 替换为 &lt;code&gt;newtext&lt;/code&gt;，可以用批处理这样做：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;span class="lnt"&gt;19
&lt;/span&gt;&lt;span class="lnt"&gt;20
&lt;/span&gt;&lt;span class="lnt"&gt;21
&lt;/span&gt;&lt;span class="lnt"&gt;22
&lt;/span&gt;&lt;span class="lnt"&gt;23
&lt;/span&gt;&lt;span class="lnt"&gt;24
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bat" data-lang="bat"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="k"&gt;ECHO&lt;/span&gt; OFF
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SETLOCAL&lt;/span&gt; ENABLEDELAYEDEXPANSION
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;inputFile=code.txt&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;outputFile=code_modified.txt&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;oldText=oldtext&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;newText=newtext&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;EXIST&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;%inputFile%&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;ECHO&lt;/span&gt; Input file not found.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;EXIT&lt;/span&gt; /B
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;FOR&lt;/span&gt; &lt;span class="k"&gt;/F&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;usebackq delims=&amp;#34;&lt;/span&gt; &lt;span class="se"&gt;%%&lt;/span&gt;a &lt;span class="k"&gt;IN&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;%inputFile%&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;DO&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;line=&lt;/span&gt;&lt;span class="se"&gt;%%&lt;/span&gt;&lt;span class="s2"&gt;a&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;line=!line:&lt;/span&gt;&lt;span class="nv"&gt;%oldText%&lt;/span&gt;&lt;span class="s2"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;%newText%&lt;/span&gt;&lt;span class="s2"&gt;!&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;ECHO&lt;/span&gt; &lt;span class="nv"&gt;!line!&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="nv"&gt;%outputFile%&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ECHO&lt;/span&gt; Replacement complete. Output file: &lt;span class="nv"&gt;%outputFile%&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ENDLOCAL&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;请修改变量 &lt;code&gt;inputFile&lt;/code&gt;、&lt;code&gt;oldText&lt;/code&gt; 和 &lt;code&gt;newText&lt;/code&gt; 以匹配实际需求。&lt;/li&gt;
&lt;li&gt;该脚本会生成一个新文件，原文件保持不变。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="三如何编辑与运行批处理文件"&gt;三、如何编辑与运行批处理文件？
&lt;/h2&gt;&lt;h3 id="编辑批处理文件"&gt;编辑批处理文件
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;右键 &lt;code&gt;.bat&lt;/code&gt; 文件，选择“编辑”即可在记事本中打开和修改。&lt;/li&gt;
&lt;li&gt;修改完成后，按 &lt;code&gt;Ctrl+S&lt;/code&gt; 保存。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="运行批处理文件"&gt;运行批处理文件
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;直接双击 &lt;code&gt;.bat&lt;/code&gt; 文件即可执行。&lt;/li&gt;
&lt;li&gt;也可打开命令提示符窗口，通过 &lt;code&gt;cd&lt;/code&gt; 命令切换到脚本目录，输入脚本名称后回车运行。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="四批处理文件的使用小贴士"&gt;四、批处理文件的使用小贴士
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;保存位置建议&lt;/strong&gt;：放在用户“文档”或“桌面”等易访问目录，便于管理。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;增强功能&lt;/strong&gt;：结合 Windows 任务计划程序，可实现定时自动执行。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;复杂自动化&lt;/strong&gt;：批处理适合简单流程，若需要更强功能，推荐 PowerShell 或 Python。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全注意&lt;/strong&gt;：避免运行不明来源的批处理文件，以防恶意操作。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="结语"&gt;结语
&lt;/h2&gt;&lt;p&gt;Windows 批处理文件为广大用户提供了一种低成本、门槛低的自动化解决方案。掌握它，可以轻松完成文件管理、软件启动、网络驱动映射、自动化文本处理等多种任务。希望本教程能帮助你快速上手批处理编程，从此高效管理你的 Windows 电脑。&lt;/p&gt;
&lt;h2 id="参考资料"&gt;参考资料
&lt;/h2&gt;&lt;p&gt;&lt;a class="link" href="https://www.windows11.pro/251520.html" target="_blank" rel="noopener"
&gt;在 Windows 11上创建批处理 （.bat） 文件的 5 种方法&lt;/a&gt;&lt;/p&gt;</description></item></channel></rss>