有没有办法可以使用set命令从给定的变量中隔离几个单词,然后将其保存为另一个变量以便以后使用?
如果我说cd C:\users
,我可以采用类似C:\users
的内容并将其保存为变量吗?
:inputstage
set /p input=Enter command:
if /i {%input%}=={get} (goto :get)
:get
set %input%==%getfile%
echo %getfile% >>Files to get.txt
call getfiles.bat
goto: inputstage
当我要求输入命令时输入以下内容:“get index.html”然后它将把index.html保存到名为“files to get.txt”的文件中然后它将调用一段代码将运行ftp接收文件的命令ftp -s:ftpreceive.bat
然后将读取“files to get.txt”并查看index.html并将其放入以下ftp代码中获取index.html(或我指定的任何文件)
我是否只能将input
变量的一部分变为变量getfile
?
答案 0 :(得分:0)
您似乎尝试将单词与输入分开或分成<command>
和<whatever>
。在这两种情况下,for
都是可行的方法:
@echo off
setlocal enabledelayedexpansion
set "input=get something special"
echo method 1 (get "first word" and "rest"):
for /f "tokens=1*" %%a in ('echo %input%') do (
set "command=%%a"
set "param=%%b"
)
echo %command% : %param%
echo/
echo method2 (get every word):
set i=0
for %%a in (%input%) do (
set "_var[!i!]=%%a"
set /a i+=1
)
set _var