[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] for循环遍历文件夹建立快捷方式报错

小弟近来在学习批处理, 想利用批处理中的for语句, 查询某一文件夹下所有子文件夹,并为每个子文件夹在相同目录下建立一个快捷方式(由于觉得用dos命令建快捷方式不太好弄,于是选用vbs),代码如下:
@echo off
for /f %%d in ('dir /a:d/s/b') do (  
echo Dim WshShell,Shortcut >>tmp.vbs  
echo Dim path,fso >>tmp.vbs  
echo path="%%d" >>tmp.vbs  
echo Set fso=CreateObject("Scripting.FileSystemObject") >>tmp.vbs  
echo Set WshShell=WScript.CreateObject("WScript.Shell") >>tmp.vbs  
echo Set Shortcut=WshShell.CreateShortCut(%%d.lnk) >>tmp.vbs  
echo Shortcut.TargetPath=path >>tmp.vbs  
echo Shortcut.Save >>tmp.vbs  
"%SystemRoot%\System32\WScript.exe" tmp.vbs
@del /f /s /q tmp.vbs
)

但是在运行中出现如下报错信息;
1) dos窗口中报错: 另一个程序正在使用此文件,进程无法访问。
2)vbs窗口弹出报错,打开tmp.vbs文件,内容如下:
Set fso=CreateObject("Scripting.FileSystemObject"    '此处没有")",而原文件中有")"
Set fso=CreateObject("Scripting.FileSystemObject"
Set fso=CreateObject("Scripting.FileSystemObject"
Set fso=CreateObject("Scripting.FileSystemObject"
Set fso=CreateObject("Scripting.FileSystemObject"
Set fso=CreateObject("Scripting.FileSystemObject"
Set WshShell=WScript.CreateObject("WScript.Shell")   
Set Shortcut=WshShell.CreateShortCut(%d.lnk)   
Shortcut.TargetPath=path   
Shortcut.Save   

小弟接触批处理并不深,比较菜,请各位大大不吝赐教,万分感谢!

[ 本帖最后由 natureli 于 2009-7-28 12:28 编辑 ]

返回列表