Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何在批处理文件中隔离变量的一部分,然后将其另存为另一个变量?_Batch File_Variables_Ftp - Fatal编程技术网

Batch file 如何在批处理文件中隔离变量的一部分,然后将其另存为另一个变量?

Batch file 如何在批处理文件中隔离变量的一部分,然后将其另存为另一个变量?,batch-file,variables,ftp,Batch File,Variables,Ftp,是否有一种方法可以使用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.

是否有一种方法可以使用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-s:ftprective.bat
,然后ftp接收文件将转到并读取“files to get.txt”查看index.html并将其放入以下ftp代码get index.html(或我指定的任何文件)


我能否只获取
输入
变量的一部分以成为变量
getfile

您似乎试图将单词从输入中分离出来,或者将其分离为
。在这两种情况下,
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

您似乎试图将单词从输入中分离出来,或将其分为
。在这两种情况下,
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

您应该显示所引用的代码。此外,您还应该更具体地说明如何选择哪一块。有几种方法可以实现这一点:使用for/f解析、字符串替换、子字符串。正如您所见,在注释中不可能清楚地读取多行代码。因此,请编辑您的问题,以包括您的附录。(并使用输入框上方的{}标记您的代码。)代码的和平不会突出显示您想要提取的内容。顺便说一句,当前表单中的if是多余的,因为如果不满足条件,代码流将获取。我建议您阅读a是什么。当它要求我输入命令时,我输入以下内容:“get index.html”,然后它将获取index.html并将其保存到名为“files to get.txt”的文件中然后它将调用一段代码,该代码将运行命令
ftp-s:ftprective.bat
,ftp接收文件将读取“filestoget.txt”并查看index.html,并将其放入以下ftp代码
get index.html(或我指定的任何文件)
您应该显示所引用的代码。此外,您还应该更具体地说明如何选择哪一块。有几种方法可以实现这一点:使用for/f解析、字符串替换、子字符串。正如您所见,在注释中不可能清楚地读取多行代码。因此,请编辑您的问题,以包括您的附录。(并使用输入框上方的{}标记您的代码。)代码的和平不会突出显示您想要提取的内容。顺便说一句,当前表单中的if是多余的,因为如果不满足条件,代码流将获取。我建议您阅读a是什么。当它要求我输入命令时,我输入以下内容:“get index.html”,然后它将获取index.html并将其保存到名为“files to get.txt”的文件中然后它将调用一段代码,运行命令
ftp-s:ftprective.bat
,ftp接收文件将读取“files to get.txt”并查看index.html,并将其放入以下ftp代码
get index.html(或我指定的任何文件)