Batch file 对目录中的所有文件执行批处理中的VBS

Batch file 对目录中的所有文件执行批处理中的VBS,batch-file,vbscript,Batch File,Vbscript,如何在目录中的所有文件上循环以下批处理代码: for/f“tokens=*”%%f in('dir/b*.txt')do( 设置旧文件=%cd%%%f 设置新文件=%cd%/2%%f echo.>%NewFile% 启动far.vbs“%NewFile%”“%OldFile%” ) 其中,far.vbs如下所示: Set OldFile=CreateObject(“Scripting.FileSystemObject”) Set rdOldFile=OldFile.OpenTextFile(W

如何在目录中的所有文件上循环以下批处理代码:

for/f“tokens=*”%%f in('dir/b*.txt')do(
设置旧文件=%cd%%%f
设置新文件=%cd%/2%%f
echo.>%NewFile%
启动far.vbs“%NewFile%”“%OldFile%”
)
其中,
far.vbs
如下所示:

Set OldFile=CreateObject(“Scripting.FileSystemObject”)
Set rdOldFile=OldFile.OpenTextFile(WScript.Arguments(1),1)
oContent=rdOldFile.ReadAll
rdOldFile.Close
设置lOldFile=CreateObject(“Scripting.FileSystemObject”)
设置lrdOldFile=OldFile.OpenTextFile(WScript.Arguments(1),1)
oLen=Len(lrdOldFile.ReadAll)
lrdOldFile,关闭
oData=o内容
oData=右侧(O内容,oLen-1)
oData=左(oData,oLen-2)
Set NewFile=CreateObject(“Scripting.FileSystemObject”)
设置fData=NewFile.OpenTextFile(WScript.Arguments(0),2)
fData.WriteLine(oData)
fData.关闭
目前没有生成文件,vbs代码似乎没有执行。该目录应包含一个包含一些通用字符串的文本文件和带有删除前两个字符和后两个字符的
far.vbs
脚本


此脚本的目的是从文件夹中的多个文件中删除不必要的字符部分。

for循环中的变量展开无法按预期方式工作。整个循环被读取为一条语句,所有
%var%
都在该点展开。要使代码正常工作,需要启用。您可能还希望使用
cscript.exe
而不是

setlocal EnableDelayedExpansion
对于('dir/b*.txt')中的/f“tokens=*”%%f(
设置“旧文件=%cd%%/%f”
设置“NewFile=%cd%/2%%f”
echo.>“!新建文件!”
cscript.exe//NoLogo far.vbs“!NewFile!”!OldFile!”
)

for循环中的
变量展开无法按预期方式工作。整个循环被读取为一条语句,所有
%var%
都在该点展开。要使代码正常工作,需要启用。您可能还希望使用
cscript.exe
而不是

setlocal EnableDelayedExpansion
对于('dir/b*.txt')中的/f“tokens=*”%%f(
设置“旧文件=%cd%%/%f”
设置“NewFile=%cd%/2%%f”
echo.>“!新建文件!”
cscript.exe//NoLogo far.vbs“!NewFile!”!OldFile!”
)

@AnsgarWiechers我已经试着更清楚地说明我在执行什么。我想你也应该包括代码的目的(?)@loadingnow谢谢你的反馈。我已经添加了一条语句来解释这个脚本的目的。@AnsgarWiechers我已经试着更清楚地说明我在执行什么。我想你也应该包括代码的目的(?)@loadingnow谢谢你的反馈。我已经添加了一个声明来解释这个脚本的目的。谢谢你的帮助。你有什么参考资料可以帮助我更好地理解这些概念吗。非常感谢您的反馈和帮助!我的答案中有两个链接。谢谢你的帮助。你有什么参考资料可以帮助我更好地理解这些概念吗。非常感谢您的反馈和帮助!我的答案中有两个链接。