Batch file 从命令提示符读取批处理文件
各位,我需要解决一个问题 我需要像这样写入命令提示符 С:>convert.bat“Aoäiaõe uue oaõieaiaõueauaöau” 脚本需要向用户显示我在那里写入的字符串Batch file 从命令提示符读取批处理文件,batch-file,Batch File,各位,我需要解决一个问题 我需要像这样写入命令提示符 С:>convert.bat“Aoäiaõe uue oaõieaiaõueauaöau” 脚本需要向用户显示我在那里写入的字符串 如何执行此操作?批处理文件中的运行时参数由%1、%2…管理 这意味着,如果在批处理文件中访问%1,则可以传入第一个参数 欢迎光临。蝙蝠: @echo Hello, %1 运行welcome.bat“World”将给出以下输出: Hello, World. @Santhosh J的答案与&,“,|等参数有关,但
如何执行此操作?批处理文件中的运行时参数由%1、%2…管理 这意味着,如果在批处理文件中访问%1,则可以传入第一个参数 欢迎光临。蝙蝠:
@echo Hello, %1
运行welcome.bat“World”
将给出以下输出:
Hello, World.
@Santhosh J的答案与
&
,“
,|
等参数有关,但这一个没有
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
::Redirect to file
>args.tmp (
SETLOCAL DISABLEEXTENSIONS
prompt #
@echo on
FOR %%a in (%%a) do REM # %1#
@echo off
ENDLOCAL
)
::Read file using SET /P
<args.tmp (
set /p arg=
set /p arg=
)
::Delete temp file
del /f /q args.tmp
::Trim prompt and surrounding #s
set "arg=!arg:~7,-2!"
::Print
ECHO(!arg!
ENDLOCAL
@echo关闭
SETLOCAL ENABLEDELAYEDEXPANSION
::重定向到文件
>args.tmp(
setLocalDisableExtensions
提示#
@呼应
对于%%a英寸(%%a)进行REM#%1#
@回音
端部
)
::使用SET/P读取文件
setlocaldisableextensions
禁用修改器,如%%~dpa
对于%%a in(%%a)do…
将变量%%a
的替换为字符串%%a
当启用ECHO
时,回显…
REM#%1
保护它免受/?
最后,SET/p
提供了一种可靠的读取文件的方法。1)输出将是Hello,“World”
。2)只有9个命名参数%1
。%9
%11
被翻译成%1
,并附加一个文本1
(出于好奇:您从哪里获得255
的?我刚刚获得了4095个参数,但这里的限制因素只是最大行长度)。(要访问更多参数,需要使用命令)感谢您的更正,我对答案进行了编辑,以反映这一点。它不适用于大多数有毒字符,但+1。改进此答案的建议是使用DELAYEDEXPANSION
和ECHO ON
和REM
将管道连接到文件,并使用SET/P
读取文件。此外,使用ECHO(
)。