Powershell 比MSDOS批处理文件更好?

Powershell 比MSDOS批处理文件更好?,powershell,batch-file,scripting,Powershell,Batch File,Scripting,有什么比在bat文件中使用MSDO来运行命令行操作和复制文件更好的方法吗 我遇到了旧的栗色“gotchas”,文件名很长,等等——出于某种原因,bat文件不会暂停——当我在运行命令后在脚本中插入pause时——这很烦人 外面有什么更好的 为大家干杯 顺便说一句-刚刚查看了Powershell,看起来网络/sys管理员已经在我们的PC上阻止了Powershell(nice)。VB脚本位于一个普通的.vbs文件中。请看一看参见-(以前的monad)编写Powershell脚本应该很不错。不过,我从来

有什么比在bat文件中使用MSDO来运行命令行操作和复制文件更好的方法吗

我遇到了旧的栗色“gotchas”,文件名很长,等等——出于某种原因,bat文件不会暂停——当我在运行命令后在脚本中插入pause时——这很烦人

外面有什么更好的

为大家干杯


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

VB脚本位于一个普通的.vbs文件中。

请看一看参见-(以前的monad)

编写Powershell脚本应该很不错。不过,我从来没有这样做过,如果您打算分发脚本,脚本用户也需要PowerShell。

微软新的hotness命令行和脚本语言被称为。它修复了批处理文件的许多缺陷

使用,它是一个功能强大的Win32文本模式文件/目录管理器,无需安装即可运行。安装cygwin并使用bash脚本,或安装perl并使用perl脚本,或安装ant并使用。。。。。。六羟甲基三聚氰胺六甲醚。。。我忘了你在那里用什么了。哦,等等。。。ant脚本也是过时的4DOS。注意授权。

我经常在我使用的每个Windows设备上安装和朋友。很多人都使用cygwin,但我更喜欢。

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

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

@回声消失
setlocal

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

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

:用法

回显%0服务器数据库脚本

:EOF
endlocal

  • 您可以使用多种语言来 实现如VBScript、JScript、, 或者Python(我想我甚至见过 Perl)
  • 您可以完全访问 语言内置库
  • 你得到 比使用更丰富的API 普通的蛋壳
  • WSH包含在 Windows的所有装运版本
  • 你 可以混合和匹配语言,重复使用 块、添加新库等

实际上,提到
VBScript
的答案实际上意味着:

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

任何能够访问旧的
COM
ActiveX
)的windows语言(除了
vbs
js
)都可以使用相同的脚本对象
Python
是一个例子,而
.NET
P-Invoke
是另一个例子


technet上包含许多在系统管理中使用WSH的示例,大多数在VBS中使用Take命令是一个选项。我使用它并热爱它:

提供真正的Windows脚本语言

164内置命令
245 函数
159系统变量
向上成熟且经过良好测试的代码
与CMD.EXE兼容,并带有 成千上万的补充


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


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

了解Python或Ruby,它可以执行Powershell、VBScript、Perl、PHP等的任何操作;)

30sLol中的6个powershell响应查找.BAT和.CMD文件之间的差异。BAT是旧版本,.CMD修复了一些烦恼。啊,好吧-我从来都不知道。另外,如果你厌倦了再次听到“使用powershell”,试试这些你必须购买jpsoft的家伙-我只需要完成工作,就像现在一样,不必费心通过财务等,为我们为什么应该购买这个软件建立一个案例但无论如何还是要感谢…Idigas:批处理文件将由cmd运行。exe,而不考虑扩展名。维达:你能发布一些据称失败的代码吗?“暂停”通常是暂停,当它不起作用时,其他东西可能会出错。不过,您的描述对调试没有什么帮助。在VBS上也是如此-我有一批很好的VBS脚本用于我的日常维护类型。我确信我最终将不得不搬到PowerShell,所以我对这两个项目都投了赞成票