批处理中的 IF 语句导致问题。单独运行时有效吗?

2023-12-03

在工作中,我每天为新用户设置几台计算机。我使用的批处理文件提供了 3 个选项: 1.添加新用户 2.更改电脑名称 3.两者皆有 当从自己的批处理文件运行时,它们都工作得很好,但是当将代码复制/粘贴到 IF 语句中时,只有 IF 语句“2”有效。我究竟做错了什么? 安装程序要求输入 1、2 或 3。 提前致谢!!

set /p choose=Enter your selection here:
if %choose%==1 (
set /p user=Enter Username, then press Enter to create new user with default password:
net user "%user%" LSCpass14 /add
)

if %choose%==2 (
set /P pcname=Please enter this computer's LSC Asset Tag number, eg. 1295:
REG ADD HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters /v "NV Hostname" /t REG_SZ /d "LSC-%pcname%" /f
set /p reboot=You will need to restart your computer for these changes to be applied.   Would you like to restart now? [y/n] )
if %reboot%==y start shutdown -r -t 00
)

if %choose%==3 (
set /p user=Enter Username, then press Enter to create new user with default password:
net user "%user%" LSCpass14 /add
set /P pcname=Please enter this computer's LSC Asset Tag number, eg. 1295 :
REG ADD HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters /v "NV Hostname" /t REG_SZ /d "LSC-%pcname%" /f
set /p reboot=You will need to restart your computer for these changes to be applied.   Would you like to restart now? (y\n) 
if %reboot%==y start shutdown -r -t 00
)

使用此代码时,由于字符串中存在特殊字符,因此需要将所有字符串括在双引号中。

@echo off
setlocal EnableDelayedExpansion
set /p "choose=Enter your selection here: "
if "!choose!"=="1" (
   echo Enter user name, then press Enter to create new user with default password.
   set /p "user=User name: "
   %SystemRoot%\system32\net.exe user "!user!" LSCpass14 /add
) else if "!choose!"=="2" (
   set /P "pcname=Please enter this computer's LSC Asset Tag number, eg. 1295: "
   %SystemRoot%\system32\reg.exe ADD HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters /v "NV Hostname" /t REG_SZ /d "LSC-!pcname!" /f
   echo You will need to restart your computer for these changes to be applied.
   set /p "reboot=Would you like to restart now? [y/n] "
   if /i "!reboot!"=="y" start %SystemRoot%\system32\shutdown.exe -r -t 00
) else if "!choose!"=="3" (
   echo Enter user name, then press Enter to create new user with default password.
   set /p "user=User name: "
   %SystemRoot%\system32\net.exe user "!user!" LSCpass14 /add
   set /P "pcname=Please enter this computer's LSC Asset Tag number, eg. 1295 : "
   %SystemRoot%\system32\reg.exe ADD HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters /v "NV Hostname" /t REG_SZ /d "LSC-!pcname!" /f
   echo You will need to restart your computer for these changes to be applied.
   set /p "reboot=Would you like to restart now? [y/n] "
   if /i "!reboot!"=="y" start %SystemRoot%\system32\shutdown.exe -r -t 00
)
endlocal

输入后在命令提示符窗口的最后一页输出help cmd or cmd /?显示字符列表,需要将字符串括在双引号中。圆括号和方括号也属于这组特殊字符。批处理代码说明了原因()具有特殊含义,因此包含它们的字符串实际上需要用双引号引起来。

并且需要使用环境变量的延迟扩展,如输入后帮助输出中所解释的set /? or help set.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

批处理中的 IF 语句导致问题。单独运行时有效吗? 的相关文章

  • Java 能够选择是加还是减

    我有两个问题 第一是为什么我不能添加运算符 我可以添加第一个和第二个整数 但不能添加运算符 第二个问题是我需要创建一个永无止境的循环 有没有比 while 循环更简单的方法 基本上的想法是 如果他们选择 如果会说错误的运算符 请重试 imp
  • 使用脚本清除 Internet Explorer 6.0 浏览历史记录

    我使用以下脚本删除 IE 7 0 中的浏览历史记录 RunDll32 exe InetCpl cpl ClearMyTracksByProcess 255 但现在我需要一个脚本来清除 IE 6 0 中的浏览历史记录 我收到一条错误消息 缺少
  • 忽略批处理文件中的百分号

    我有一个批处理文件 可将文件从一个文件夹移动到另一个文件夹 批处理文件是由另一个进程生成的 我需要移动的一些文件中包含字符串 20 move y myserver myfolder file 20name txt myserver othe
  • 访问另一个批处理文件中的批处理函数

    好吧 假设我们有一个名为 lib cmd 的文件 它包含 echo off GOTO EXIT FUNCTION echo something GOTO EOF EXIT exit b 然后我们有一个名为 init cmd 的文件 它包含
  • 如何通过 DOS 批处理命令发送电子邮件?

    我在 DOS 中有一个批处理文件 可以进行一些检查 完成后我需要发送一封电子邮件 我在 interwebz 上找到了一些解决方案 但大多数都是第三方的 或者只是在 Outlook 中打开新邮件 我需要命令来发送完整的电子邮件 而无需任何人工
  • 排除批复制脚本中的文件夹

    我正在使用 U 盘上的批处理文件来备份我的照片 我使用以下命令 for r C x in jpg png gif do copy y x 我想排除邮件文件夹 WINDOWS 和 PROGRAM FILES 中的文件 有谁知道如何使用批处理文
  • 如何从Windows阻止社交媒体[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我想根据时间阻止我的电脑上的社交媒体 晚上 9 点后屏蔽 上午 11 点后解锁 如家长控制 我尝试过关注但失败了 创建了
  • 如何在批处理文件中回显换行符?

    如何从批处理文件输出中插入换行符 我想做类似的事情 echo hello nworld 这会输出 hello world Use echo hello echo echo world
  • 更改 Wi-Fi 配置文件的密码

    在我志愿服务的长期护理医院中 每个月的第一天 访客 Wi Fi 连接的密码都会更改 这给工作人员带来了大量的工作 也给患者带来了很多挫败感 其中许多人的行动能力非常有限 是的 真正的解决方案是让 IT 团队保留相同的密码 但这不会发生 大多
  • 如何迭代所有注册表项?

    我正在尝试迭代所有注册表项以查找 包含 并删除 jre1 5 0 14 值 有办法做到吗 下面的代码只是在特定键下找到jre1 5 0 14 我确实想迭代所有的键 顺便说一句 if 子句获取是否等于 jre1 5 0 14 但如果它包含 j
  • jQuery - 如何检查元素是否存在?

    我知道你可以测试width or height 但是如果元素的 display 属性设置为 none 该怎么办 还有什么其他值可以检查以确保该元素存在 您可以使用length http api jquery com length 查看您的选
  • 为什么标签存在却提示“系统找不到指定的批次标签”?

    在 Windows XP 中运行批处理文件时 我发现随机出现的错误消息 系统找不到指定name of label的批次标签 标签当然存在 导致此错误的原因是什么 实际上 要实现这一点 你需要两个条件 批处理文件不得使用 CRLF 行结尾 您
  • 如何使用 youtube-dl 批量创建 youtube 下载器 gui

    这就是我目前所处的位置 cls echo off title youtube downloader downloader echo youtuber downloader pause cls echo please put the link
  • 运行程序并退出cmd窗口

    我想制作一个运行特定程序的批处理文件 然后命令窗口自行退出 我尝试了这个 因为我将创建该批处理文件的快捷方式 以便批处理文件位于根目录中 echo off program exe mainframe pkg exit 它可以工作 但黑色窗口
  • 使用 ICACLS 将文件权限设置为“只读”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我很难从简单 直观的方式转变过来chmod 400尝试在 Windows 命令提示符中执行相同的操作ICACLS 与 UNIX LINUX
  • 通过类似开关的参数进行循环的批处理文件?

    我正在尝试循环传递给批处理文件的参数 根据参数 我想设置一个变量标志 true 或 false 以便稍后在脚本中使用 所以我的命令是 myscript bat u p s 我的代码是 FOR f a IN DO IF I a u SET U
  • 如何使用Windows任务计划程序执行cscript?

    问题 当我双击 bat 文件时 它会按预期执行 当我在 Windows 任务计划程序中安排它时 除了具有 cscript 的行之外 它都会执行 bat文件的内容 echo off cls cscript CSV To Excel vbs c
  • 使用标准用户帐户在提升的脚本中获取登录用户名

    在 Windows 7 中运行的批处理脚本中 我有几个 IF 子句 例如 IF USERNAME foo GOTO bar 不幸的是 当我运行这个批处理脚本时 用 以管理员身份运行 从上下文菜单中 USERNAME 始终是管理员的用户名 而
  • 如何删除批处理文件中的新行?

    我正在处理批处理文件并导出到文本文件 看起来一切都很好 但是当我打开文本文件时 许多新行中断 所以 我想删除它们 echo OFF setlocal EnableDelayedExpansion systeminfo findstr c H
  • 批量-用特殊字符替换字符串

    我想使用批处理文件替换文件中的字符串 该字符串是 我想用以下方式替换它 我发现了几篇帖子 比如这个 如何替换 Windows 批处理文件中的子字符串 https stackoverflow com questions 5273937但该示例

随机推荐

  • 如何在R中直接绘制h2o模型对象的ROC

    如果我遗漏了一些明显的东西 我很抱歉 在过去的几天里 我非常喜欢使用 R 界面与 h2o 一起工作 我想通过绘制 ROC 来评估我的模型 例如随机森林 该文档似乎表明有一种简单的方法可以做到这一点 解释 DRF 模型 默认情况下 显示以下输
  • 写入会话数据失败

    在长时间使用同一应用程序而没有更改编程后 我收到了此消息 Warning Unknown write failed No space left on device 28 in Unknown on line 0 Warning Unknow
  • 在 JavaScript 中获取两个日期的秒数差异

    我使用 Date 将日期存储在 MongoDB 中 MongoDB 使用 UTC 它的日期类型 字符串看起来像Mon 02 Apr 2012 20 16 31 GMT 我想获得当前时间与当前时间 UTC 时间 之间的时间差 以总秒数为单位
  • 在某些观察结果之前选择组,通过将 R 中的 var 分组与 NA 控制分开

    我的样品 data structure list add structure c 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 1L 2
  • Android:后退按钮中的 onSaveInstanceState

    我正在开发一个应用程序 其中我将覆盖后退按钮 我创建了一个复选框 单击后我调用意图 startActivityforResult 并且还保持活动状态为 Override public void onSaveInstanceState Bun
  • SQL Server 日期时间 LIKE 选择?

    在MySQL中 select from record where register date like 2009 10 10 SQL Server 中的语法是什么 您可以使用 DATEPART 函数 SELECT FROM record W
  • PHP 中的工厂设计模式是什么?

    这让我很困惑 用最简单的术语来说 它有什么作用 假装你正在向你的母亲或其他人解释 工厂创建一个对象 所以 如果你想构建 class A public classb public classc public function construc
  • 对象数组的 Var-arg 与对象数组——尝试理解 SCJP 自测问题

    我无法理解这个问题以及 SCJP 1 6 自测问题答案的解释 问题是这样的 class A class B extends A public class ComingThru static String s public static vo
  • C++ 返回并插入二维数组对象

    我试图从一个较小的 2D 数组对象返回一个数组数据成员 并尝试将该数组插入到一个更大的 2D 数组对象中 但当我尝试这样做时 我遇到了两个问题 第一个问题是我想返回 2D 数组的名称 但我不知道如何正确的语法来返回 2D 数组名称 这就是我
  • 获取值和位置来标记 ggplot 直方图

    下面的代码运行良好 并且它正确地标记了条形图 但是 如果我尝试geom text对于直方图我失败了geom text需要一个y 分量和直方图y组件不是原始数据的一部分 标记 普通 条形图 geom bar stat identity 效果很
  • 使用C#获取插入行的id

    我有一个查询要在表中插入一行 该表有一个名为 ID 的字段 该字段是使用列上的 AUTO INCRMENT 填充的 我需要为下一个功能获取这个值 但是当我运行以下命令时 它总是返回 0 即使实际值不为 0 MySqlCommand comm
  • iOS 上的自定义键盘:如何访问 UITextField?

    我有一个UIView我分配给文本字段的子类如下 self textField inputView HexKeyboard alloc initWithFrame CGRectMake 0 0 100 100 这有效 即键盘出现 然而 应该如
  • 提取以特定字符开头的几个单词EXCEL

    我有这个公式来提取以给定字符 开头的特定单词 它工作正常 但是 有更多以相同开头的单词 它只会提取第一个单词 如何让它全部提取出来 TRIM LEFT SUBSTITUTE MID B2 FIND B2 LEN B2 REPT 100 10
  • 为 n 维系统实现模块化 Runge-kutta 四阶方法

    我正在尝试使我的 runge kutta 四阶代码模块化 我不想每次使用它时都必须编写和声明代码 但是在 hpp和 cpp文件中声明它以分别使用它 但我遇到了一些问题 一般来说 我想求解 n 维方程组 为此 我使用两个函数 一个用于方程组
  • 如何在谷歌浏览器中创建侧边栏(右侧)?

    似乎这是不可能的 但如果有人提示如何在 google chrome 中创建右侧边栏 如 iframe 任何提示都会有所帮助 谢谢 截至目前 实验性侧边栏 API 已从 Chrome 文档中消失 因为不再有开发人员在处理它 对于现在可以实现的
  • 与循环相比,使用函数有什么优点?

    函数式迭代器似乎正在取代 JS 中 for 循环的使用 传递诸如此类的函数有什么好处map or reduce与 for while 循环相比 var numbers 1 4 9 var doubles numbers map functi
  • 我可以选择性地禁用软件包加载到 VS2010 中吗?

    继续问题来自 VS2010加载缓慢 我可以分析扩展程序各自的启动时间吗 查看日志文件后 发现有一些我没有太多使用的包 我认为 加载时间 包 2s Microsoft VisualStudio TeamArchitect DesignersC
  • 当值为 null 时使用 Thymeleaf

    我的数据库中有一些值 如果尚未输入 则这些值可能为空 但是当我在 html 中使用 Thymeleaf 时 它在解析 null 值时会出错 有什么办法可以处理这个问题吗 最短的方法是使用 操作员 如果您有嵌入地址实体的用户实体 以便访问地址
  • 在 bash 中使用 ${1:1}

    有人知道什么吗 1 1 在 bash 中意味着 例如 for i 0 i lt 1 1 i do addToList 2 done 那是一场狂欢参数扩展 具体来说 parameter offset parameter offset leng
  • 批处理中的 IF 语句导致问题。单独运行时有效吗?

    在工作中 我每天为新用户设置几台计算机 我使用的批处理文件提供了 3 个选项 1 添加新用户 2 更改电脑名称 3 两者皆有 当从自己的批处理文件运行时 它们都工作得很好 但是当将代码复制 粘贴到 IF 语句中时 只有 IF 语句 2 有效