比MSDOS批处理文件更好?

Vid*_*dar 8 powershell scripting batch-file

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

我遇到了旧的栗子"陷阱"与长文件名等 - 由于某种原因蝙蝠文件不会暂停 - 当我在运行命令后在我的脚本中插入PAUSE - 它只是烦人.

那里有什么好转的?

干杯人.

BTW - 刚刚看过Powershell,看起来网络/系统管理员已经在我们的PC上阻止了Powershell(不错).

Jer*_*y E 6

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

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

示例:quicksql.bat

@echo off
setlocal

如果"%1"==""goto USAGE
set server =%1
if"%2"==""goto USAGE
set database =%2
if"%3"==""goto USAGE
set script =%3

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

:用法

echo%0服务器数据库脚本

:EOF
endlocal


gim*_*mel 5

实际上,答案指的是VBScript真正意味着Windows Scripting Host:

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

任何可以访问good old ()的Windows语言(除了vbsjs)都可以使用相同的脚本对象.是一个例子,并且与是另一回事.COMActiveXPython.NETP-Invoke

technet上的脚本中心脚本存储库包含许多系统管理中的使用示例,其中大多数都在.WSHVBS