批处理或VBS:运行控制台程序

时间:2015-03-02 14:22:19

标签: batch-file vbscript console

我想运行一个控制台程序(如 fsutil ln )来查找文件夹中的所有硬件兄弟,并记录所有结果一个文本文件。 当文件夹中的名称像

一样时,很容易做到这一点
  • fsutil hardlink list“83333 Curriculum vitae.jpg”> hardwarelinks2.txt
  • fsutil hardlink list“77127 Prolis Moderatio.jpg”>> hardwarelinks2.txt

依此类推...... 但是当文件数量太大而文件夹中的文件名未知时如何。 我在VBS中试过这个,但它总是带来一些错误

Set oShell = WScript.CreateObject ("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "J:\Test"
Set objFolder = objFSO.GetFolder(objStartFolder)
Set colFiles = objFolder.Files
For Each objFile in colFiles
 oShell.run "cmd.exe /c fsutil hardlink list """ & objFile.Name & """ >> hw2.txt"
Next
Set oShell = Nothing

似乎文件名中有空格的问题,所以我必须使用引号 - 但是怎么做?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

在批处理文件中使用

(for %%a in ("j:\test\*") do @fsutil hardlink list "%%a") > hardlinks2.txt

或者如果你想从vbs执行它

oShell.run "cmd /q /c ""(for %a in (""j:\test\*"") do fsutil hardlink list ""%a"") > hardlinks2.txt"""