VB脚本重命名文件?

时间:2011-03-09 16:37:40

标签: vbscript batch-file dos

我编写了一个非常简单的批处理脚本,它将为我执行XSLT转换,将一堆html文件转换为xml文件:

FOR %%i IN (*.htm) DO java -jar saxon.jar -o:"..\Front_Matter\%%i.xml" "%%i" "C:\Documents and Settings\Robert\Desktop\xsl\htm2xml.xsl"

XSLT工作正常,但只是创建的文件没有所需的文件名,例如,如果原始文件名是“Happy Christmas.htm”,我希望输出xml被称为“Happy_Christmas”。 xml“,所以只有两件事,首先是摆脱原始文件名的.htm部分,第二是用下划线替换空格。

当前生成的文件名很难看,例如:“Happy Christmas.htm.xml”。

提前致谢!

2 个答案:

答案 0 :(得分:1)

  1. 使用%%~ni代替%%i来提取没有扩展名的基本文件名。

  2. 使用%var: =_%语法将var变量的值中的空格替换为下划线。

  3. 所以,基本上,你需要这样的东西:

    @echo off
    setlocal enabledelayedexpansion
    
    FOR %%i IN (*.htm) DO (
      SET basename=%%~ni
      SET basename=!basename: =_!
      java -jar saxon.jar -o:"..\Front_Matter\!basename!.xml" "%%i" "C:\Documents and Settings\Robert\Desktop\xsl\htm2xml.xsl"
    )
    

答案 1 :(得分:0)

Set fso = CreateObject("Scripting.FileSystemObject")

set oFldr = fso.getfolder("N:\Groups\TestGroup\UPS\")

for each ofile in oFldr.Files
  if lcase(fso.GetExtensionName(ofile.Name)) = "txt" then
    fso.MoveFile ofile.Path, ofile.ParentFolder & "\HRSC100.txt"

    Exit for
  end if
Next
*if you want vbscirpt then above will work*