我在批处理文件中进行提示循环
我试图读取命令和参数的输入。
目前,我检查open
的前4个字母,然后我想抓住下一个应该是要打开的文件名的字。
我想在索引1处的空格之间抓取文本。
open file.txt
- > file.txt
我需要类似中间字符串的反转
mid-string:%input:~0,4%
- open file.txt
- > open
老实说,我需要%input:~5,-0%
才能工作!哈哈
%input:~5,-1%
有效...为什么不使用0
代替1
?
太糟糕的批处理无法获得字符串的长度。
我发现了一些可以获得字符串长度的东西: How do you get the string length in a batch file?
我用代码尝试了它:
call :strlen length input
echo %input:~5,length%
它总是解析得很奇怪。
答案 0 :(得分:2)
echo %input:~5%
如果未指示,则直到字符串的末尾。
答案 1 :(得分:1)
拉斐尔答案的一点变化(检查open
的第一个字):
@echo off
set "input=open file.txt"
for /f "tokens=1,2" %%a in ('echo/%input%') do ( if /i "%%a"=="open" set "fileName=%%b")
echo/%fileName%
pause>nul
答案 2 :(得分:0)
@echo off
set "input=open file.txt"
for /f "tokens=2" %%a in ('echo/%input%') do (set "fileName=%%a")
echo/%fileName%
pause>nul