0

所以我正在寻找一个 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"/>

我在使用这个脚本时遇到了很多问题,我似乎无法接受我正在设置的变量并让它们按照我通常的方式附加到文本中。

任何帮助,将不胜感激。

4

2 回答 2

1

事实证明,我的 batch-fu 非常强大:

@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
于 2012-12-03T21:50:47.917 回答
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"/^>)
  )
)
于 2012-12-03T22:33:03.243 回答