我试图从MSd窗口xp中的cmd脚本转到vbscript
cmd代码是的作品是
set home_=%~dp0
set part001=part001
set part002=part002
set part003=part003
set part004=part004
::get the dir in part001
for /f "delims=" %%A in ('dir /s/b/o:n/a:d ^"%home%%part001%\^"') do (
echo show have dir path
echo %%A
pause
)
echo to the end
pause
goto :eof
到vbscript
我不知道要转换的部分是 cmd {cmd codeing}
dim strHome as strimg =cmd{[%~dp0]}
dim strPart001 as sting = part001
dim strPart002 as sting = part002
dim strPart003 as sting = part003
dim strPart004 as sting = part004
'get the dir in part001
Dim objFSo, objFile
Set objFSo = CreateObject("Scripting.FileSystemObject")
set objDirPart001list = objFS.getfolder(strHome&strPart001\)
set subDirPart001list = objDirPart001list.SubFolders
for each subDirPart001Name in subDirPart001list
WScript.Echo show dir path
WScript.Echo part
cmd{pause}
)
cmd{pause}
对应的vbscript命令是什么:
答案 0 :(得分:0)
%~dp0
是一个所谓的魔术命令,但从技术上讲,这种方法称为变量替代。 % n 变量用于引用脚本的命令行参数。最常见的是,%0
将返回正在执行的脚本的完整路径。 d和p是特殊修饰符,分别返回该路径的驱动器和路径部分。还有n返回文件名部分以及others。可以根据需要组合这些修饰符。因此%~dp0
命令将返回执行脚本所在目录的完整驱动器和路径。要在VBScript中执行此操作,您可以使用依赖于WScript对象的ScriptFullName方法的以下任何内容:
Set objShell = CreateObject("WScript.Shell")
Set objFso = CreateObject("Scripting.FileSystemObject")
strPath = objFso.GetParentFolderName(WScript.ScriptFullName)
或者
strPath = Left(WScript.ScriptFullName, Len(WScript.ScriptFullName) - Len(WScript.ScriptName))
或者我最喜欢的:
Replace(WScript.ScriptFullName, WScript.ScriptName, "")
pause
命令用于停止命令解释程序并提示用户按任意键继续。通常这样做是为了使用户有时间在命令窗口关闭之前读取信息。这是在CScript中执行此操作的子例程。 (对于WScript,您只需使用一个简单的MessageBox。)
Sub Pause
WScript.StdOut.Write "Press any key to continue . . . "
WScript.StdIn.Read(1)
End Sub