昨天我问了这个post,但是当我尝试从我的java项目中运行这个.bat文件时,我仍然遇到问题。
@echo off
set filename=%1
echo %filename | sed 's/\([A-Z]\)/ \1/g';
我的电话是:
String param = "myparam";
ProcessBuilder pb = new ProcessBuilder("myFile.bat", param);
但myFile.bat所做的只是打印%filename
,所以它不会取我发送的参数的实际值。
我做错了什么?
提前致谢
我也尝试了
@echo off
set filename=%1
echo %filename% | sed 's/\([A-Z]\)/ \1/g';
结果相同,现在打印%filename%
。
可能在调用中遇到一些问题??
答案 0 :(得分:1)
你错过了第二个%
。应该是:
echo %filename% | sed 's/\([A-Z]\)/ \1/g';
答案 1 :(得分:1)
%filename
最后遗漏了%
。它应该是:%filename%
答案 2 :(得分:1)
您可能希望执行cmd.exe /c script.bat
,以便cmd.exe(命令shell)将扩展变量。在Windows中,.bat文件不是完整的可执行文件,只是命令处理器的输入文件(cmd.exe
)。