批处理文件成功和错误记录

2023-12-01

有没有办法在批处理文件中记录批处理文件的错误和成功?

我正在尝试将文件从我的计算机复制到 200 台机器(效果很好),但想知道哪个失败以及失败的原因(因为屏幕消失得很快)。

@echo off
if [%1]==[] goto usage
@echo mapping l: to %1\c$
net use * /delete /y
net use l: \\%1\c$ password /user:%1\administrator

if ERRORLEVEL 1 (
echo failed

 net use l: \\%1\c$ password /user:%1\administrator

) else (
goto mappingError

) > command.txt

::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::

@echo copying link file to C: Drive
copy "c:\_\CopyFileToHost\logoff.cmd" l:\

::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::

@echo deleting l: mapping
net use l: /delete /y

@echo off
goto :eof

:usage
@echo Usage: %0 hostname
exit /B 1

:mappingError
@echo Error mapping remote drive, exiting
exit /B 1

首先,不要使用

if [%1]==[] goto usage

因为方括号在这里没有任何特殊含义。更好的是使用

if "%~1"=="" goto usage

双引号字符具有特殊含义,因为它可以比较包含 1 个或多个空格或 1 个或多个字符的字符串&()[]{}^=;!'+,`~.

%~1表示删除了周围双引号的第一个参数。通过在命令提示符窗口中运行来查看帮助输出call /?更多细节。

其次,阅读 Microsoft 的文章使用命令重定向运算符 and 测试批处理文件中的特定错误级别了解下面的批处理代码。

@echo off
if "%~1"=="" goto usage
%SystemRoot%\System32\net.exe use L: /delete /y 2>nul
(
    echo Mapping L: to %~1\c$ ...
    %SystemRoot%\System32\net.exe use L: "\\%~1\c$" password /user:%~1\administrator /persistent:no
    if not errorlevel 1 (
        echo Copying the file X ...
        rem copy X L:\
        echo Disconnecting network drive L: ...
        %SystemRoot%\System32\net.exe use L: /delete /y
    )
) >command.txt 2>&1
goto :EOF

:usage
echo Call this batch file with name of computer as parameter.
echo.
pause

错误消息写入stderr被附加到stdout by 2>&1默认情况下写入标准消息。以及所有写给stdout被重定向到文件command.txt在当前目录中,因此文本文件包含正确输出顺序的标准消息和错误消息。

如果您希望将命令也写入文本文件,以便更轻松地确定哪个命令来自哪个错误或标准消息,echo另外还有命令。

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

批处理文件成功和错误记录 的相关文章

随机推荐

  • 我怎样才能修复反应中的路线错误

    我收到此警告 除了 App js 中包含 默认页面内容 的 之外 我看不到我的路线 我如何重写包含其他路线的代码 位置 admin 处的匹配叶路由没有元素 这意味着默认情况下它将呈现一个空值 从而导致 空 页面 我在用着 反应 17 0 2
  • for-each 内的方案延续

    我目前正在大学学习一门课程的计划 在查看一些练习时 我陷入了这个特定的练习中 教授尚未回复我之前的邮件 因此我有更多机会更快地收到答复 鉴于此代码 define list iter cc lst call cc lambda return
  • cin 的 isdigit 问题

    我有一个有符号整数变量 当我在 main 中执行此操作时 它也会给我整数值 错误 int main unsigned int a while cin gt gt a if isdigit a cout lt lt Error lt
  • ios NSError 类型

    自从我添加了这个async请求 我收到 xcode 错误Sending NSError const strong to parameter of type NSError autoreleasing changes retain relea
  • Rshinydashboard-根据用户输入显示/隐藏多个菜单项

    这个想法是有一个用户输入 访问代码 基于该输入可以访问不同的菜单项 所以基本上我们可以根据用户的要求提供自定义版本的应用程序 3 个菜单项的工作示例如下 library shiny library shinydashboard librar
  • 无法在 Java 应用程序中连接到 SQLServer 数据库

    我已在尝试开发的 JSF Web 应用程序中连接到我的数据库 使用 Windows 7 NetBeans 6 9 1 SQLServer 2008 Glassfish 3 3 我正在使用sqljdbc4 jar我从 XP 系统复制了驱动程序
  • 使用 Java 访问嵌套 JSON 对象的最佳方法

    我是使用 JSON 的新手 我想知道是否有更好的方法来完成我在下面的代码中所做的事情 您会注意到 要访问嵌套的 JSON 对象 我必须先创建子 JSON 对象 数组 然后才能访问 JSON 数组元素 leagues 有没有更快或更简单的方法
  • 使用 volatile long 作为原子

    如果我有这样的事情 volatile long something global 0 long some public func return something global 当使用多个线程访问时 期望此代码不会中断 竞争条件 是否合理
  • 为什么 pyautogui 点击实际上没有点击

    我尝试使用 Pyautogui 的单击功能 但实际单击没有发生 或者至少页面没有变化 尽管它将鼠标移动到正确的位置 该窗口处于焦点位置 我认为 因为该程序与其他页面配合得很好 我只能找到一个相关问题 单击程序时遇到问题 pyautogui
  • 当应用程序在 Xcode 中停止时自动关闭 iOS 模拟器

    每当 Xcode 中的应用程序停止时 是否可以让 iOS 模拟器关闭 退出 我无法在 Xcode 或模拟器中找到执行此操作的设置 如果存在的话 它将有助于加快开发进程 要在构建停止时终止模拟器 您需要编译一个可执行文件 包括以下内容 bin
  • 如何在Windows Phone中对在线内容进行数据虚拟化?

    我有一个从互联网获取内容的应用程序 这些信息太大了 无法容纳在内存中 LongListSelector does UI Virtualization出色地 遗迹Data Virtualization 我认为解决方案是先将数据保存在数据库中然
  • 使用 pcntl_fork() 提高 HTML 抓取效率

    在前两个问题的帮助下 我现在有了一个可以工作的 HTML 抓取工具 可以将产品信息输入数据库 我现在想做的是通过让我的刮刀工作来提高效率pcntl fork 如果我将 php5 cli 脚本分成 10 个单独的块 我会在很大程度上提高总运行
  • 如何为不同的配置设置不同的应用程序图标?

    在项目属性对话框中的 应用程序 选项卡上 用于选择配置的下拉列表被禁用 如何将图标设置为依赖于构建配置 这可能会带来一些启发 但我认为它仅适用于 VS2010 应用程序图标 如何选择基于编译器指令的不同图标 32338
  • 正则表达式替换 Javascript 中的算术运算符

    我有一个包含算术运算符的字符串数组 我想用新的算术运算符替换数组中的这些算术运算符 例如 var equation 5 0 9 34 6 0 2 1 3 1 2 0 var newEquation equation replace 然而 它
  • 如何为 Junit 单元测试设置 JVM 参数?

    我有一些 Junit 单元测试需要大量堆空间才能运行 即 1G 他们测试 Webstart 应用程序的内存密集型功能 该应用程序仅在足够的堆空间下运行 并且将在 Win 7 64 位计算机上内部运行 因此重新设计测试并不是一个实际的建议 我
  • 为什么当我调用 Canvas3D.repaint() 时 Java3D 画布会闪烁

    我在 Java3D 画布上使用 postRender 绘制了 2D 元素 并希望对这些元素进行动画处理 在循环中我调用 Canvas3D repaint while animationIsRunning I update positions
  • 如何获取 tab_id 将其设置为活动选项卡

    我正在尝试使用 tkinter 构建一个文本编辑器 我只是想将焦点设置在新打开的选项卡中 通过使用静态 tab id 我可以立即设置它 但如果我一次有超过 15 个选项卡 则很难找到 tab id 我想要 tab id 与 tab name
  • 如何获取数字的数字而不将其转换为字符串/字符数组?

    如何在 C 中获取数字的数字而不将其转换为字符串或字符数组 下面按重要性升序打印数字 即个位 然后是十位 等等 do int digit n 10 putchar 0 digit n 10 while n gt 0
  • “拖动”移动 uibutton,使其行为类似于 uiScrollView

    我需要在屏幕上上下滑动 uibutton 仅限 Y 它需要被限制在一个区域内 我希望能够点击它并拖动or轻拂它 就像 uiScrollView 一样 它与 uiScrollView 不同的原因是您必须从按钮开始 而不是从 uiScrollV
  • 批处理文件成功和错误记录

    有没有办法在批处理文件中记录批处理文件的错误和成功 我正在尝试将文件从我的计算机复制到 200 台机器 效果很好 但想知道哪个失败以及失败的原因 因为屏幕消失得很快 echo off if 1 goto usage echo mapping