Board logo

标题: [文件操作] 搜尋指定檔案 列出菜單!? [打印本页]

作者: 回憶愛情    时间: 2012-9-28 15:31     标题: 搜尋指定檔案 列出菜單!?

本帖最后由 回憶愛情 于 2012-9-28 16:11 编辑

不知道這問題是否有人問過( 關於 這問題我不知該如何蒐尋  如有問過 請見諒

步驟1. 列出 指定的 2~3級目錄內 查找 指定檔名

如:
.\根目錄\test\SETUP.iso
.\根目錄\tt\test\SETUP.iso
.\根目錄\tb\test\SETUP.iso

紅色字體為 固定檔(不過 鑒於 名稱或許容易發生混淆 需要+一個辨識
(鑑別同目錄下的 ok.jpg 存在 則 保存變數 也就是說 當同一個目錄下 ok.jpg 存在 則 路徑 輸入到變數 否則 跳出....
若 所有磁盤無指定 則 goto :error1

步驟2. 利用查找到的變數 建立一個菜單


echo [1] 路徑..1
echo [2] 路徑..2

步驟3  輸入 1 or 2  獲取變數 代入後續動作 (最後不是要執行 setup.iso 而是把路徑當一個變數 往下工作...

(由於 或許會在很多 磁盤存在同一個 \test\SETUP.iso

懇請 各位 幫忙
作者: batman    时间: 2012-9-28 16:18

本帖最后由 batman 于 2012-9-28 16:56 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. for /r %%a in (*.iso) do (
  3.   set "str=%%a"&set "flag=a"
  4.   if /i "!str:~-15!" neq "\test\SETUP.iso" set "flag="
  5.   if not exist "%%~dpaok.jpg" set "flag="
  6.   if defined flag set /a n+=1&set "_!n!=%%a"
  7. )
  8. if not defined n echo 没有找到任何文件&pause>nul&exit
  9. :lp
  10. cls
  11. for /f "tokens=1,2 delims=_=" %%a in ('set _') do echo [%%a] %%b
  12. set "select="&set /p select=请选择路径:
  13. set "choice="&set /p choice=请确认是否执行(Y/N):
  14. if /i "%choice%" equ "n" goto lp
  15. echo !_%select%!&pause
复制代码

作者: 回憶愛情    时间: 2012-9-28 16:47

回复 2# batman


    出現 找不到檔案  我把 test 放在 根目錄 &  一級子目路 都試過了 q_q
作者: batman    时间: 2012-9-28 16:56

回复 3# 回憶愛情


    已修改,再试
作者: 回憶愛情    时间: 2012-9-28 17:07

回复 4# batman


一樣的結果 ><
作者: batman    时间: 2012-9-28 17:46

回复 5# 回憶愛情


    没办法,自己搭建了环境,测试可以啊
作者: 回憶愛情    时间: 2012-9-28 18:33

本帖最后由 回憶愛情 于 2012-9-28 18:46 编辑

回复 6# batman

哈哈  打开了 echo 终于找到重点....


我都忘了 那个确认   ok.jpg  囧... sor


(话说 只能查找 根 批次同盘的...(需要是 全盘搜索....

不用那么多层 3层足以
作者: 回憶愛情    时间: 2012-9-29 12:08

回复 6# batman

修改了一下 可搜尋各磁盤  就是 ok.jpg 複確認 搞不定  囧  

有請高手出手 ><

   
@echo off
cls

:s1
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 (

  for /f "delims=" %%b in ('dir /a-d /b /s %%a:\test\*.iso 2^>nul') do (

    set/a n+=1&echo [!n!] %%b

    set ".!n!=%%b"

  )

)

set/p aa=選擇:

for %%a in ("!aa!") do set iso=!.%%~a!

:s2





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2