【问题标题】:Better than MSDOS batch files? [closed]比 MSDOS 批处理文件更好? [关闭]
【发布时间】:2009-06-04 17:34:43
【问题描述】:

有没有比在 bat 文件中使用 MSDOS 来运行命令行操作和复制文件更好的方法。

我遇到了带有长文件名等的旧栗子“陷阱” - 由于某种原因,bat 文件不会暂停 - 当我在运行命令后在脚本中插入 PAUSE 时 - 这很烦人。

还有什么更好的?

干杯,伙计们。

顺便说一句 - 刚刚查看了 Powershell,看起来网络/系统管理员已经在我们的 PC 上阻止了 Powershell(很好)。

【问题讨论】:

  • 查找 .BAT 和 .CMD 文件之间的差异。 .BAT 是旧版本,.CMD 修复了一些烦恼。
  • 啊,好吧 - 从来不知道。
  • 另外,如果你厌倦了再听一遍“使用 powershell”,试试这些人jpsoft.com
  • 你必须购买 jpsoft - 而我只需要完成工作,就像现在一样,不必费心通过财务等,为我们为什么应该购买这个软件建立一个案例...... . - 不过还是谢谢...
  • Idigas:批处理文件将由 cmd 运行。 exe,无论扩展名如何。 Vidar:你能发布一些据称失败的代码吗? pause 通常会暂停,如果没有,其他东西可能会出错。不过,您的描述对调试并不完全有帮助。

标签: powershell batch-file scripting


【解决方案1】:

看看PowerShell

【讨论】:

  • LOL 30 秒内 6 个 powershell 响应
【解决方案2】:

使用 bat 文件时有一些经验法则。

  • 使用 setlocal endlocal 将您的环境变量保留在脚本之外
  • 在处理文件时使用双引号以允许名称中包含空格的文件
  • 使用 pushd/popd 而不是 cd 在目录之间移动也适用于 UNC 路径
  • 如果您运行另一个 bat 文件,请在它之前使用 call 关键字,否则您的脚本会将控制权转移到新的 bat 文件并且永远不会返回到原始文件。

示例:quicksql.bat

@echo 关闭
设置本地

如果 "%1"=="" 转到用法
设置服务器=%1
如果 "%2"=="" 转到用法
设置数据库=%2
如果 "%3"=="" 转到用法
设置脚本=%3

sqlcmd.exe -S %server% -d %database% -i "%script%"
转到EOF

:用法

echo %0 服务器数据库脚本

:EOF
本地化

【讨论】:

    【解决方案3】:

    实际上,提到VBScript的答案实际上是指Windows Scripting Host

    WSH 是一个独立于语言的脚本宿主,适用于 32 位 Windows 平台。 Microsoft 为 WSH 提供了 Microsoft Visual Basic Sc​​riptJava Script 脚本引擎。它用作 ActiveX 脚本引擎的控制器,就像 Microsoft Internet Explorer 一样。因为脚本主机不是完整的 Internet 浏览器,所以它的内存占用比 Internet Explorer 小;因此,WSH 适合执行简单、快速的任务。可以通过双击脚本文件或从命令提示符直接从桌面运行脚本。 WSH 提供了一个低内存脚本主机,非常适合非交互式脚本需求,例如登录脚本、管理脚本等。 WSH 可以从保护模式的基于 Windows 的主机 (Wscript.exe) 或实模式命令基于外壳的主机 (Cscript.exe) 运行。

    可以访问旧的COM (ActiveX) 的任何 Windows 语言(vbsjs 除外)都可以使用相同的脚本对象。 Python 是一个例子,.NETP-Invoke 是另一个例子。

    technet 上的Script Center Script Repository 包含许多在系统管理中使用WSH 的示例,大部分在VBS 中。

    【讨论】:

      【解决方案4】:

      普通 .vbs 文件中的 VB 脚本。

      【讨论】:

      • VBS 上的同上 - 我有一批很好的 VBS 脚本用于我的日常维护类型的东西。我确信我最终将不得不迁移到 PowerShell,因此我对两者都投了赞成票。 :)
      【解决方案5】:

      我经常在我使用的每个 Windows 机器上安装 bash 和朋友。很多人为此使用 cygwin,但我更喜欢 MinGW

      【讨论】:

        【解决方案6】:

        安装cygwin并使用bash脚本,或者安装perl并使用perl脚本,或者安装ant并使用......嗯......我忘了你在那里使用什么。哦等等……蚂蚁脚本

        【讨论】:

          【解决方案7】:

          参见 - Windows Powershell(以前称为 monad)

          【讨论】:

            【解决方案8】:

            脚本 PowerShell 应该是相当不错的。不过我从来没有做过,如果你打算分发脚本,脚本用户也需要 PowerShell。

            【讨论】:

              【解决方案9】:

              Microsoft 的新热门命令行和脚本语言称为PowerShell。它修复了批处理文件的许多问题。

              【讨论】:

                【解决方案10】:

                4DOS 也过时了。注意许可。

                【讨论】:

                  【解决方案11】:

                  Windows Scripting Host.

                  • 您可以使用多种语言 实现如 VBScript、JScript、 或 Python(我想我什至见过 Perl)。
                  • 您可以完全访问 语言内置库。
                  • 你得到 比使用更丰富的 API 普通的 ole-shell。
                  • WSH 包含在 Windows 的所有发布版本。
                  • 你 可以混搭语言,复用 块、添加新库等。

                  【讨论】:

                    【解决方案12】:

                    Take Command 是一个选项。我使用它并且喜欢它:

                    http://www.jpsoft.com/index.html

                    提供真正的 Windows 脚本语言

                    164 内置命令
                    245 函数
                    159 个系统变量
                    成熟且经过良好测试的代码
                    向上 与 CMD.EXE 兼容 数以千计的添加

                    【讨论】:

                      【解决方案13】:

                      您可以考虑使用 Tcl。您可以获得名为 tclkit 的单个文件可执行文件,并将其与 .tcl 文件相关联。 Tcl 具有非常强大的文件处理命令,您还可以选择显示本地窗口以显示进度、添加文件选择器等。

                      Tcl 不是每个人都喜欢的,但它是一个非常强大的脚本工具。使用 tclkits,部署是微不足道的,因为它只是一个很小的单个可执行文件。

                      【讨论】:

                        【解决方案14】:

                        使用ZTreeWin,它是一个强大的Win32文本模式文件/目录管理器,无需安装即可运行。

                        【讨论】:

                          【解决方案15】:

                          了解 Python 或 Ruby,它可以做任何 Powershell、VBScript、Perl、PHP 等等;)

                          【讨论】:

                            猜你喜欢
                            • 2019-07-09
                            • 1970-01-01
                            • 2020-04-19
                            • 1970-01-01
                            • 1970-01-01
                            • 2011-01-08
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            相关资源
                            最近更新 更多