大家好,谢谢!
我希望有Vbscripting经验的人能够为我提供Vbscript的帮助(我的操作系统是带有NTFS文件系统的XP Home,由于操作系统的缘故,我不能在Vbs代码中使用WMI)
我查看了www并发现了两个VBscript片段,它们将(1)在C:\(%systemdrive%)驱动器上找到当前文件系统,第二段代码将标识OS fileSystem,但是我确实想要为了组合代码&(2)的两个部分,输出最好是一个变量,而不是稍后在批处理文件中获取的msgbox。代码段如下。 在此处输入代码
set shell = createobject("wscript.shell")
set environ = shell.environment("process")
systemdrive = environ("systemdrive")
msgbox systemdrive
在此处输入代码
set fso = CreateObject("Scripting.FileSystemObject")
set drive = fso.GetDrive("C")
Wscript.Echo "FileSystem =", drive.FileSystem
第一组代码创建一个名为systemdrive的变量,并输出到消息框。在我的情况下,第二个(在消息框中)输出“文件系统”“ NTFS”。
我的问题是当我将systemdrive信息交换到该行中时 设置驱动器= fso.GetDrive(“ C”)-像这样设置驱动器= fso.GetDrive(“ systemdrive”)而不是(“ C”) 我收到错误代码消息。另外,我正在寻找%variable%输出而不是消息框输出,例如“ FAT32,NTFS或其他”。我希望我要传达的内容有意义吗?从本质上讲,我试图使用systemdrive变量(通常为“ C:”)而不是硬编码的c:路径来查找OS文件系统并仅将输出输出到变量?
问候,
大卫
答案 0 :(得分:0)
据我了解,您想检测驱动器的文件系统并将其存储在环境变量中,以供以后在批处理文件中使用。
这意味着您计划从该批处理文件中调用VBScript,并且可以使用该批处理文件来解析任何环境变量,例如@GeneratedValue(strategy = GenerationType.SEQUENCE)
,而无需在VBS文件中执行此操作(这是可能的,但是当我们可以将驱动器号作为脚本的参数传递时,它将变得更加灵活)。
让我们制作一个VBS来接受一个参数并查找文件系统类型(如果可以)。
%SYSTEMDRIVE%
现在可以将其称为独立(出于命令行目的,请使用命令行脚本解释器cscript.exe):
Option Explicit
Dim shell, fso, drive, driveletter
' we expect a single argument - a drive letter in the form X:
If WScript.Arguments.Unnamed.Count = 0 Then Die "Please specify drive letter."
driveletter = WScript.Arguments.Unnamed(0)
Set shell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
' try to get the drive object for that drive letter, die on error
On Error Resume Next
Set drive = fso.GetDrive(driveletter)
If Err.Number <> 0 Then Die "Could not detect filesystem type for " + driveletter + " (" + Err.Description + ")"
Wscript.StdOut.Write drive.FileSystem
Sub Die(message)
WScript.StdErr.WriteLine message
WScript.Quit 1
End Sub
或者可以从批处理文件中调用它(我们将使用cscript /nologo filesystem.vbs %SYSTEMDRIVE%
循环将脚本的输出分配给变量)
for
上面为我打印了这个
@echo off
for /f "usebackq delims=" %%s in (`cscript /nologo filesystem.vbs %SYSTEMDRIVE%`) do (
set FILESYSTEM=%%s
)
echo The filesystem in %SYSTEMDRIVE% is %FILESYSTEM%.