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

[文件操作] 批处理如何把寻找的特定后缀的文件作为选项?

环境:
盘符,假设为x盘符。x盘根目录下有G目录。G目录下存储*.gho文件,这里的文件不固定,有时候可能放三个,有时候可能放两个,文件名也会更改,但都是放.gho文件!
目标:
批处理能自动列出G目录下得gho文件,并且把每个gho文件作为一个选择项。
效果:
比如G目录下有两个.gho文件分别为1.gho和2.gho,批处理寻找出来后可以变成
A:1.gho
B:2.gho
选择A就实行 ghost -rb x:\1.gho.
选择B就实行 ghost -rb x:\2.gho
如上效果!
逍遙濤濤

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. for %%a in ("C:\test\*.gho") do (
  5.     set /a n+=1
  6.     set [!n!]=%%a
  7. )
  8. set [
  9. set /p input=请输入你的选择:
  10. ghost -rb ![%input%]!
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2楼 的帖子

FOR 能直接列出来?通常的思维都是DIR,呵呵,涨见识了...

TOP

回复 3楼 的帖子

lxzzr兄倒是有点不同。
一般人不是更喜欢for吗?为此还多次提醒过文件名有变动时应用dir。
命令行参考:hh.exe ntcmds.chm::/ntcmds.htm
求助者请拿出诚心,别人才愿意奉献热心!
把查看手册形成条件反射!

TOP

在已知文件名格式时用*和?加上楼上的for做法比较针对。毕竟dir是全部列出,可用面更广

TOP

原帖由 Batcher 于 2009-12-18 13:43 发表
@echo off
setlocal enabledelayedexpansion
set n=0
for %%a in ("C:\test\*.gho") do (
    set /a n+=1
    set [!n!]=%%a
)
set [
set /p input=请输入你的选择:
ghost -rb ![%input%]!

“set ["是什么意思??
群里列出了windows下可以比较完美的实现,但是在纯dos下就不能很好的支持,提示语法不正确,希望有高手帮忙改下
群里老大给出的代码:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /a-d /b *.gho') do (
  3.     set /a n+=1&set "_!n!=%%a"
  4.     set /p=!n! %%a <nul&echo.
  5. )
  6. echo.&echo.&set /p select=请输入序号:
  7. echo.&echo 你选择的是!_%select%!
  8. pause>nul
复制代码
逍遙濤濤

TOP

回复 6楼 的帖子

你为什么在最开始提问的时候不说清楚是需要在DOS系统里面运行呢?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

抱歉,没考虑到,windows和dos的使用方法不一样!
逍遙濤濤

TOP

返回列表