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

[文件操作] 搜尋指定檔案 列出菜單!?

本帖最后由 回憶愛情 于 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: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
复制代码
***共同提高***

TOP

回复 2# batman


    出現 找不到檔案  我把 test 放在 根目錄 &  一級子目路 都試過了 q_q

TOP

回复 3# 回憶愛情


    已修改,再试
***共同提高***

TOP

回复 4# batman


一樣的結果 ><

TOP

回复 5# 回憶愛情


    没办法,自己搭建了环境,测试可以啊
***共同提高***

TOP

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

回复 6# batman

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


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


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

不用那么多层 3层足以

TOP

回复 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

TOP

返回列表