批处理文件来完成目录中的所有操作

时间:2012-12-03 20:28:41

标签: batch-file

所以我想制作一个jar来把所有东西放在“jar”类型的目录中然后让它列出它的目录名,并且它的文件名是:

这样的事情:

Listing of files in Directory c:\abc\123

myJar1.jar
myJar2.jar
...
myJar10.jar

我希望输出显示如下:

<jar href="123/myJar1.jar"/>
<jar href="123/myJar2.jar"/>
...
<jar href="123/myJar10.jar"/>

我一直在使用这个脚本遇到很多问题,我似乎无法接受我正在设置的变量,并让他们按照惯例附加到文本中。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

事实证明我的批处理方式非常强大:

@echo off
dir /b /A *.jar > myJars.txt
for %%* in (.) do set CurrDirName=%%~n*
for /F "tokens=*" %%A in (myJars.txt) do echo ^<jar href^="%CurrDirName%/%%A" /^> >> myJars2.txt

答案 1 :(得分:1)

不需要中间文件,也不需要环境变量。

@echo off
>myJars.txt (for %%D in (.) do for %%F in (*.jar) do echo ^<jar href="%%~nD/%%F"/^>)

如果您确实必须包含隐藏文件和系统文件,则以下较长版本可以使用

@echo off
>myJars.txt (for %%D in (.) do for /f "eol=: delims=" %%F in ('dir /b /a-d *.jar') do echo ^<jar href="%%~nD/%%F"/^>)

以上两个都可以重新格式化,以便更具可读性:

:: excludes hidden and system files
@echo off
>myJars.txt (
  for %%D in (.) do (
    for %%F in (*.jar) do (echo ^<jar href="%%~nD/%%F"/^>)
  )
)

:: includes hidden and system files
@echo off
>myJars.txt (
  for %%D in (.) do (
    for /f "eol=: delims=" %%F in (
      'dir /b /a-d *.jar'
    ) do (echo ^<jar href="%%~nD/%%F"/^>)
  )
)
相关问题