标题: [文件操作] 批处理如何把寻找的特定后缀的文件作为选项? [打印本页]
作者: zt404834426 时间: 2009-12-18 13:20 标题: 批处理如何把寻找的特定后缀的文件作为选项?
环境:
盘符,假设为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
如上效果!
作者: 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%]!
复制代码
作者: lxzzr 时间: 2009-12-18 15:10 标题: 回复 2楼 的帖子
FOR 能直接列出来?通常的思维都是DIR,呵呵,涨见识了...
作者: zqz0012005 时间: 2009-12-18 19:19 标题: 回复 3楼 的帖子
lxzzr兄倒是有点不同。
一般人不是更喜欢for吗?为此还多次提醒过文件名有变动时应用dir。
作者: bluewing009 时间: 2009-12-18 23:00
在已知文件名格式时用*和?加上楼上的for做法比较针对。毕竟dir是全部列出,可用面更广
作者: zt404834426 时间: 2009-12-20 17:19
原帖由 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下就不能很好的支持,提示语法不正确,希望有高手帮忙改下
群里老大给出的代码:- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /a-d /b *.gho') do (
- set /a n+=1&set "_!n!=%%a"
- set /p=!n! %%a <nul&echo.
- )
- echo.&echo.&set /p select=请输入序号:
- echo.&echo 你选择的是!_%select%!
- pause>nul
复制代码
作者: Batcher 时间: 2009-12-20 22:46 标题: 回复 6楼 的帖子
你为什么在最开始提问的时候不说清楚是需要在DOS系统里面运行呢?
作者: zt404834426 时间: 2009-12-21 12:57
抱歉,没考虑到,windows和dos的使用方法不一样!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |