@echo off
setlocal enableextensions
setlocal enabledelayedexpansion
set at=%cd%
for %%i in (*.exe) do set exe=%%i
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set dri=%%i
set driv=!dri:~-2!
set flag=0
fsutil fsinfo drivetype !driv!|find "ROM">nul && (set flag=1&echo 没有找到%exe%!&pause&exit)
if !flag!==0 (
cd /d !driv!
for /r %%a in (%exe%) do (
if exist %%a set dest=%%~dpa
if not "!dest!"=="!at!\" goto out
)))
:out
xcopy "!at!" "!dest!" /s /y /q
>>temp.vbs echo Set Shell=CreateObject("WScript.Shell")
>>temp.vbs echo DesktopPath=Shell.SpecialFolders("Desktop")
>>temp.vbs echo Set link=Shell.CreateShortcut(DesktopPath ^& "\\!exe!.lnk")
>>temp.vbs echo link.description="!exe!"
>>temp.vbs echo sPath=left(Wscript.ScriptFullName,len(Wscript.ScriptFullName)-len(Wscript.ScriptName))
>>temp.vbs echo link.TargetPath=sPath ^& "!dest!!exe!"
>>temp.vbs echo link.WindowStyle=0
>>temp.vbs echo link.WorkingDirectory=DesktopPath
>>temp.vbs echo link.Save
temp.vbs
del temp.vbs
echo 操作结束!
pause>nul
1、直接复制后,请将每一句后面多余的空格删除,否则会出错!
2、本批处理自动获取那个exe文件的名称,故而exe可以任意命名,前提是只有一个exe文件。
3、本批处理自动判断本机有哪些分区,从而遍历各分区搜寻exe
4、本批处理自动排除搜索A文件夹内的exe,故而可以将A文件夹放到任何地方!
5、请将本批处理放到文件夹A中,和exe文件在一起。
6、本批处理已通过调试,希望在你的电脑上能正常运行。
=========================================
能不能告诉我不能运行有什么提示吗?并且,你的XP是完整版的还是精简版的,精简版的有些东西可能不精简掉了。
只有一个exe文件,也就是说只能有一个文件类型为exe的文件,其名字可以随便起。
上面的写得太复杂了。。。我简单的写了一下,你需要把abcdefg.exe改成你那个B.exe。下面是代码。获取盘符为了执行效率直接枚举了。
我忘了一点,自解压程序会把批处理放在临时文件夹,里面包含空格。下面经过修改并测试通过,请确认
@echo off
for %%a in (c d c d e f g h i j k l m n o p q r s t u v w x y z) do (
if exist %%a:\ (
for /f "delims=/" %%i in ('dir /s /b %%a:\abcdefg.exe') do (
call :get %%~dpi
)
)
)
xcopy.exe "%cd%" "%lj:~0,-1%" /q /y /e >nul 2>nul
echo 拷贝完成!
echo [InternetShortcut] >"%userprofile%\Desktop\b.url"
echo url="%lj%abcdefg.exe" >>"%userprofile%\Desktop\b.url"
echo IconIndex=2 >>"%userprofile%\Desktop\b.url"
echo IconFile=%windir%\system32\shell32.dll >>"%userprofile%\Desktop\b.url"
ping -n 5 127.0.0.1 >nul 2>nul
goto :eof
:get
if /i "%*" NEQ "%cd%\" set lj=%*
goto :eof
批处理的确很难实现,或许骨灰级的批处理爱好者才能做出来。用程序来实现倒是很容易实现,一旦运行就不存在被中断的可能。
做成安装文件更好,批文件,不好整啊。