标题: [文本处理] 批处理全盘搜索磁盘根目录下的sources文件夹 无法goto跳转 [打印本页]
作者: samsung4203 时间: 2012-7-25 18:24 标题: 批处理全盘搜索磁盘根目录下的sources文件夹 无法goto跳转
我想全盘搜索磁盘根目录下的sources文件夹 找到文件夹后执行一个可选择的命令:
下面这个批处理是我做的 可以搜到全盘根目录下的sources文件夹,但无法用goto跳转到指定的标签- @echo off
- setlocal enabledelayedexpansion
- for %%i in (c d e f g h i j k l m n o p q r s t u v w s y z) do (
- if exist %%i:\sources\ (
- echo.
- echo 在%%i:\sources文件夹下找到了inslall.wim映像
- Dism /Get-WimInfo /WimFile:%%i:\sources\install.wim
- echo.
- echo [1] 提取镜像1
- echo.
- echo [2] 提取镜像2
- echo.
-
- SET /P ST=请选择要运行的程序:
- echo.
- if /I "%ST%"=="1" goto s2
- if /I "%ST%"=="2" goto s1
-
- :s1
- del /q d:\install.wim
- imagex /export %%i:\sources\install.wim 1 d:\install.wim
- echo 提取完成
- pause>nlu
-
- :s2
- del /q d:\install.wim
- imagex /export %%i:\sources\install.wim 2 d:\install.wim
- echo 提取完成
- pause>nlu
- )
- )
- )
- )
- pause
复制代码
如果直接goto s2的话 就会出现如下图的提示
求高手解答!!!
作者: andyrave 时间: 2012-7-28 22:59
- @echo off & setlocal enableDelayedExpansion
- for %%a in (c d e f g h i j k l m n o p q r s t u v w s y z) do (
- if exist %%a:\nul (
- for /f "delims=" %%b in ('dir /a-d /s /b "%%a:\install.wim" 2^>nul') do (
- set wim=%%b
- goto dism
- )))
- pause
- exit
- :dism
- echo.
- echo 找到 %wim% 映像
- echo.
- echo [1] 提取镜像1
- echo.
- echo [2] 提取镜像2
- echo.
- SET /P ST=请选择要运行的程序:
- echo.
- if /I "%ST%"=="1" goto s2
- if /I "%ST%"=="2" goto s1
-
- :s1
- del /q d:\install.wim 2>nul
- imagex /export "%wim%" 1 d:\install.wim
- echo 提取完成
- pause
- exit
-
- :s2
- del /q d:\install.wim 2>nul
- imagex /export "%wim%" 2 d:\install.wim
- echo 提取完成
- pause
复制代码
作者: samsung4203 时间: 2012-7-29 17:46
回复 2# andyrave
多谢andyrave 大哥的指导 我已经按照您的指导完美的解决了问题 下面是我修改过的原代码:此代码是全盘搜索根目录下sources文件夹下的install.wim文件 并打开指定路径的Install.wim文件
现在又有个新问题:如何在输入数字之后(imagex /export "%wim%" 1 c:\install.wim)中的1也变成我们输入的数字 比如说输入2之后(imagex /export "%wim%" 1 c:\install.wim)中的1就变成了2 这样我们可以省去很多的繁琐代码 来优化源代码。。。- :home
- cls
- @echo off&setlocal enabledelayedexpansion
- for %%a in (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:\sources\install.wim" (
- set/a n+=1&echo !n!, %%a:\sources\install.wim
- set ".!n!=%%a:\sources\install.wim"
- )
- )
- set/p aa=选择:
- for %%a in ("!aa!") do set wim=!.%%~a!
- goto dism
- pause
- exit
- :dism
- cls
- Dism /Get-WimInfo /WimFile:%wim%
- echo.
- echo 找到 %wim% 映像
- echo.
- echo [1] 提取镜像1到C盘
- echo.
- echo [2] 提取镜像2到C盘
- echo.
- echo [3] 提取镜像3到C盘
- echo.
- echo [4] 提取镜像4到C盘
- echo.
- echo [5] 提取镜像5到C盘
- echo.
- echo [6] 返回主菜单
- echo.
- SET /P ST=请选择要运行的程序:
- echo.
- if /I "%ST%"=="1" goto s1
- if /I "%ST%"=="2" goto s2
- if /I "%ST%"=="3" goto s3
- if /I "%ST%"=="4" goto s4
- if /I "%ST%"=="5" goto s5
- if /I "%ST%"=="6" goto home
-
- echo 输入错误,请重新输入...
- pause>nul
- goto dism
-
- :s1
- del /q c:\install.wim 2>nul
- imagex /export "%wim%" 1 c:\install.wim
- echo 提取镜像1完成
- pause>nul
- goto home
-
- :s2
- del /q c:\install.wim 2>nul
- imagex /export "%wim%" 2 c:\install.wim
- echo 提取镜像2完成
- pause>nul
- goto home
-
- :s3
- del /q c:\install.wim 2>nul
- imagex /export "%wim%" 3 c:\install.wim
- echo 提取镜像3完成
- pause>nul
- goto home
-
- :s4
- del /q c:\install.wim 2>nul
- imagex /export "%wim%" 4 c:\install.wim
- echo 提取镜像4完成
- pause>nul
- goto home
-
- :s5
- del /q c:\install.wim 2>nul
- imagex /export "%wim%" 5 c:\install.wim
- echo 提取镜像5完成
- pause>nul
- goto home
复制代码
再下面的问题就是我输入6之后返回主菜单 之前搜索出来的路径数会累计增加 第一次是 1,2 返回之后变成3,4 再有就是如果有两个install.wim在1和2路径下 并没有3路径 我如果输入3之后 会出现错误 这个怎么解决?
作者: andyrave 时间: 2012-7-29 18:49
回复 3# samsung4203
SET /P 镜像序号- @echo off & setlocal enableDelayedExpansion
- :home
- for %%a in (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:\sources\install.wim" (
- set/a n+=1&echo !n!, %%a:\sources\install.wim
- set ".!n!=%%a:\sources\install.wim"
- )
- )
- set/p aa=选择:
- for %%a in ("!aa!") do set wim=!.%%~a!
- goto dism
- pause
- exit
- :dism
- cls
- Dism /Get-WimInfo /WimFile:%wim%
- echo.
- echo 找到 %wim% 映像
- echo.
- echo 提取镜像序号 ?到C盘
- echo.
- echo.
- SET /P WIMNM=输入提取镜像序号:
- del /q c:\install.wim 2>nul
- imagex /export "%wim%" %WIMNM% c:\install.wim
- echo 提取镜像 %WIMNM% 完成
- pause>nul
- goto home
复制代码
作者: samsung4203 时间: 2012-7-29 19:15
回复 4# andyrave
多谢andyrave 已经解决了一部分问题!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |