2014-04-10 92 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