Следующий код печатает атрибуты каждого файла в текущем каталоге из-за обработки подстановочных знаков.
c:\work>attrib *
Мне нужно отключить обработку подстановочных знаков в моем script. Символы Escape не работают:
c:\work>attrib "*"
c:\work>attrib ^*
Оба дают вам то же самое.
Мне нужно отключить обработку подстановочных знаков, чтобы запустить мое приложение, которое принимает подстановочный знак в качестве аргумента.
A.java
import java.util.Arrays;
public class A {
public static void main(String[] args) {
System.out.println(Arrays.deepToString(args));
}
}
ЦМД
C:\work\temp>start.bat
C:\work\temp>java -cp playground.jar A *
[activation.jar, file.txt, playground.jar, playground.jar.bak, start.bat, test.bat]
C:\work\temp>start.bat
C:\work\temp>java -cp playground.jar A "*"
[activation.jar, file.txt, playground.jar, playground.jar.bak, start.bat, test.bat]
C:\work\temp>start.bat
C:\work\temp>java -cp playground.jar A "* foo? *bar*"
[* foo? *bar*]
Обнаружено обходное решение. "*"; - неверное имя папки, но действительный путь к ней:
java -cp "*;" A
Спасибо.