Windows 批处理:如何滚动文件以读取变量?
我试图让它在目录中滚动,并在用户回答“N”时显示一个新变量。除了如何转到下一个变量之外,我已经把它全部弄清楚了Windows 批处理:如何滚动文件以读取变量?,windows,batch-file,variables,cmd,Windows,Batch File,Variables,Cmd,我试图让它在目录中滚动,并在用户回答“N”时显示一个新变量。除了如何转到下一个变量之外,我已经把它全部弄清楚了 cd "C:\Test" for /r %%F in (*) do SET Show=%%~NF echo %Show% echo. SET /P Continue=Continue?(Y/N) if /I "%Continue%" EQU "y" goto :Run if /I "%Continue%" EQU "n" goto :Start 如果您希望滚动目录并提示用户文件名,并
cd "C:\Test"
for /r %%F in (*) do SET Show=%%~NF
echo %Show%
echo.
SET /P Continue=Continue?(Y/N)
if /I "%Continue%" EQU "y" goto :Run
if /I "%Continue%" EQU "n" goto :Start
如果您希望滚动目录并提示用户文件名,并让他们选择该文件名或继续,那么bellow应该会对您有所帮助 首先,我们可以使用
dir/b/a:d
仅显示当前目录中的目录(文件夹)。通过使用代码块(
&)
我们可以将批处理脚本放入for循环中。为了您的利益,我们可以使用CHOICE
命令来提示继续循环,或者将当前文件夹保存为string并对其执行操作
ScrollTreeWithPrompt.bat:
@echo关闭
setlocal EnableDelayedExpansion
Rem |配置
设置“MainDir=C:\Test”
Rem |获取每个项目文件夹
对于('dir”!MainDir!\“/b/A:d')中的/f“tokens=*”%%A,请执行以下操作(
Cls
回显当前文件夹:%%A
回音(
选择/M“继续?”
Rem |检查“N”-如果是,设置字符串和转到
如果“!ERRORLEVEL!”==“2”(
设置“选项=%%A”
快跑
)
)
Rem |无进一步结果
Cls
回显警告:找不到其他文件夹。
暂停>NUL
后藤:EOF
:运行
Cls
echo当前选择:!MainDir!\!Choice!
暂停>NUL
后藤:EOF
我在脚本中留下了一些
Rem
注释来帮助您。有关命令的更多帮助,请在命令提示符中键入以下内容:
choice/?
设置/?
获取/?
goto/?
dir/b/a:d
仅显示当前目录中的目录(文件夹)我们可以将批处理脚本放入for循环中。出于您的考虑,我们可以使用CHOICE
命令提示继续循环,或将当前文件夹保存为string并对其执行操作
ScrollTreeWithPrompt.bat:
@echo关闭
setlocal EnableDelayedExpansion
Rem |配置
设置“MainDir=C:\Test”
Rem |获取每个项目文件夹
对于('dir”!MainDir!\“/b/A:d')中的/f“tokens=*”%%A,请执行以下操作(
Cls
回显当前文件夹:%%A
回音(
选择/M“继续?”
Rem |检查“N”-如果是,设置字符串和转到
如果“!ERRORLEVEL!”==“2”(
设置“选项=%%A”
快跑
)
)
Rem |无进一步结果
Cls
回显警告:找不到其他文件夹。
暂停>NUL
后藤:EOF
:运行
Cls
echo当前选择:!MainDir!\!Choice!
暂停>NUL
后藤:EOF
我在脚本中留下了一些
Rem
注释来帮助您。有关命令的更多帮助,请在命令提示符中键入以下内容:
choice/?
设置/?
获取/?
goto/?
- 这就是您需要的:
对于/R“C:\Test”%%A In(*)Do(Choice/M“%%~nA”
如果不是错误级别2(设置“Show=%%~nA”&GoTo Run))
退出/B
:运行
针对%Show%运行的回显
暂停
或者,如果您希望在对文件名运行后返回循环,则使用Call
而不是GoTo
:
对于/R“C:\Test”%%A In(*)Do(Choice/M“%%~nA”
如果不是错误级别2调用:运行“%%~nA”)
退出/B
:运行
设置“Show=%~1”
针对%Show%运行的回显
暂停
这就是您需要的:
对于/R“C:\Test”%%A In(*)Do(Choice/M“%%~nA”
如果不是错误级别2(设置“Show=%%~nA”&GoTo Run))
退出/B
:运行
针对%Show%运行的回显
暂停
或者,如果您希望在对文件名运行后返回循环,则使用Call
而不是GoTo
:
对于/R“C:\Test”%%A In(*)Do(Choice/M“%%~nA”
如果不是错误级别2调用:运行“%%~nA”)
退出/B
:运行
设置“Show=%~1”
针对%Show%运行的回显
暂停
你能解释一下滚动
的意思吗?你到底想要什么?我不清楚。你能解释一下滚动
的意思吗?你到底想要什么?我不清楚。