2014-04-10 52 views
0

我正在做一个提示循环批处理文件我需要在批量输入回路

我想读的命令和参数的输入从命令获取文件名。

目前,我检查前012个字母的open,然后我想抓住下一个单词,这应该是一个文件名来打开。

我想抢车位之间的文本索引1

open file.txt - >file.txt

我需要这样的东西中间串的逆

中间串:%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
@echo off 
set "input=open file.txt" 
for /f "tokens=2" %%a in ('echo/%input%') do (set "fileName=%%a") 
echo/%fileName% 
pause>nul 
2
echo %input:~5% 

截至如果没有指定的字符串的结尾。

1

一个小的变化,以Rafaels答案(检查第一个字为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