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

[文本处理] [已解決]批处理中如何把文件名依次传递给%1、%2、%3等?

副档名处理,希望以 %~n1 处理 比较容易

有没有什么方法,可以直接把 变量 传给 %1 %2 等参数

例如
  1. for /f %%a in ('dir /b') do (???)
复制代码
???为 希望将 %%a 依序传给 %1 %2 %3

例如dir /b 获得3个 %%a
分别为
1.txt
2.txt
3.txt

有什么办法,可以
%1=1.txt
%2=2.txt
%3=3.txt
1

评分人数

    • Batcher: 感谢主动给标题标注[已解决]字样PB + 2

不考虑文件名含空格。
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f %%a in ('dir /b') do set "str=!str!%%a "
  3. call :lp !str!
  4. :lp
  5. echo;%1
  6. echo;%2
  7. echo;%3
复制代码
考虑文件名有空格情况:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /b') do set "str=!str!"%%a" "
  3. call :lp !str!
  4. :lp
  5. echo;%~1
  6. echo;%~2
  7. echo;%~3
复制代码


另外%%a 也可能用%%~na 。跟%~n1 用法类似

[ 本帖最后由 inittab 于 2009-7-12 08:45 编辑 ]
1

评分人数

TOP

返回列表