Я получаю периодические сборки от разработчика, которым нужно запускать Java. Имена файлов xls меняются каждый раз (поэтому я не могу их жестко кодировать). Первоначально они только что дали мне bat-файл:Wild cards in bat files
pushd "%~dp0"
java -jar KDT.jar
popd
pause
Это приводит к выбору файла, в котором вы выбираете файл. По понятным причинам это не будет работать в пакетном режиме. Поэтому я изменил его на
pushd "%~dp0"
java -jar KDT.jar "../test data/sprint3/fil1.xls"
java -jar KDT.jar "../test data/sprint3/fil2.xls"
...
java -jar KDT.jar "../test data/sprint4/fil1.xls"
java -jar KDT.jar "../test data/sprint4/fil2.xls"
popd
Но, как я уже сказал, имена файлов будут меняться (но не каталоги). В Linux/Unix я бы сделал что-то вроде
for fil in ../test*/*.xls
do
java -jar KDT.jar $fil
done
немного сложнее, потому что имя каталога имеет пробел. В любом случае я попытался преобразовать этот BASH в .bat, и с некоторыми исследованиями я написал это (это всего лишь тест, чтобы сделать эхо, а не на самом деле делать Java, поскольку java занимает так много времени, что я просто делаю эхо):
проблема заключается в том, что это вторя только базовое имя файла (т.е. без имени каталога):
01.1v1.06_VK_210516.xls
01v1.03_SR_190516.xls
1.02_v0.09_SR_200516.xls
...
Когда я попробовать с Java это та же проблема, что не может найти файл в текущий каталог. Я хотел бы, чтобы результат дикой карты был полностью указан как ../test data/sprint3/01.1v1.06_VK_210516.xls (из того, что я, кажется, вижу, хотя обратная косая черта() используется для разделения имен путей в каталогах , .bat файлы кажутся (дополнительно) принимают переднюю косую черту (/)).
Как я могу получить полное (относительное) имя каталога в wild card? Я думаю, что и полный путь, начинающийся с C: /, также будет приемлемым. Если нет явного способа сделать это, то, возможно, в каждом для оператора я могу вручную связать имя файла, но я не уверен, как это сделать (в BASH это будет что-то вроде full = "../test data/sprint3/$ база»(где baseis базовое имя файла).
Любые мысли?
Спасибо. Это работает, но он не позволит мне нажать галочку ;-) – Tony
Эхо работает, но когда я использую java -jar KDT.jar "%% ~ fi", он говорит, что файл не найден. Используя без кавычек, просто %% ~ fi просматривает только последнюю часть справа от пространства. Должно быть, что-то я не делаю правильно с цитатами? – Tony