gpt4 book ai didi

java - 批量扩容通配符

转载 作者:可可西里 更新时间:2023-11-01 11:46:00 24 4
gpt4 key购买 nike

我已经为 linux 和 windows 编写了一个 Java 程序。要启动该程序,我在 linux 中使用以下代码:

abc.sh:

#!/bin/bash
java -jar /opt/AudiobookConverter/AudiobookConverter.jar "$@"

“$@”将扩展我可能向它抛出的任何通配符。因此,如果我希望我的程序处理某个目录中的所有 .mp3 文件,我只需调用 abc.sh *.mp3 即可发挥它的魔力。

在 Windows 下,我有以下代码,它应该做同样的事情:abc.bat:

java -jar C:\AudiobookConverter\AudiobookConverter.jar "%*"

但是当我调用 abc.bat *.mp3 时,它会将 *.mp3 传递给 java 程序,而不是以 .mp3 结尾的文件列表。

我做错了什么,如何解决?

您好,AHahn94

最佳答案

@echo off
setlocal enabledelayedexpansion
set "files="
for /f "delims=" %%a in ('dir /b /a-d "%*" ') do set "files=!files! %%a"
java -jar C:\AudiobookConverter\AudiobookConverter.jar "%files%"

setlocal 命令打开一个本地环境并调用delayed expansiondir 命令列出文件(仅名称 - 没有目录名称),for 将整个列表行分配给 %%a,并且每个名称使用 delayed expansion 语法附加到环境变量 files 以访问运行时值。

一旦建立了files 变量,就可以使用常规语法将其传递给java 命令。

关于java - 批量扩容通配符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44757766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com