我的麻烦是从test.txt
读取一个字符串并将其作为控制台命令输入。
实施例:
要求用户提供其沙箱文件夹的路径,同时在控制台中提供(已保存的test.txt
),仅等待用户按ENTER键
Path to your sandboxes folder: C:\Whatever\Path\Sandboxes
其中Path to your sandboxes folder:
是等待输入的脚本中set /p
命令的一部分;并且脚本已将C:\Whatever\Path\Sandboxes
键入为预先提供的路径。从这里开始,如果对提供的路径感到满意或者编辑它,用户可以按ENTER键:C:\Whatever\OtherPath\Sandcastles
我假设,第一步是从test.txt
读取变量,但我该如何从那里继续?如何在控制台中键入此字符串变量的字符?
答案 0 :(得分:1)
将其与cscript结合使用。
@if (@CodeSection == @Batch) @then
@echo off
for /f "tokens=* delims=" %%i in (test.txt) do set "output=%%I"
CScript //nologo //E:JScript "%~F0" "%output%"
set /P "var=Path to your sandboxes folder: "
echo selected path = %var%
goto :EOF
@end
WScript.CreateObject("WScript.Shell").SendKeys(WScript.Arguments(0));
答案 1 :(得分:-2)
如果在所述test.txt
中第一行只包含默认路径,则可以使用:
SET /P _path=<test.txt
SET /P _path=%_path%
这是实现此目的的最快方法,但它仅适用于第1行(read more)。
如果是在第3行使用:
FOR /F "skip=2 delims=" %%G IN ("C:\adjust\path\test.txt") DO (SET "_path=%%G" & GOTO break)
:break
SET /P _path=%_path%
对于第5行更改skip=2
至skip=4
,第17行更改为skip=16
;基本上如果路径在行n
中,您想要跳过n-1
行。
您也可以使用FINDSTR
,但只要知道test.txt
中路径的位置,这就是必要的。