Command line 计算用户定义变量的第一个字符是大写的

Command line 计算用户定义变量的第一个字符是大写的,command-line,for-loop,cmd,uppercase,Command Line,For Loop,Cmd,Uppercase,我有一个模板文档,我想将其转换为另一个具有用户定义名称的文件。下面是我拼凑的代码 rem @echo off setlocal enableDelayedExpansion cls :Check_Filename set "_Filename=" set /p _Filename=Enter filename to be created: if not defined _Filename echo You must enter a value. Try again.&goto Ch

我有一个模板文档,我想将其转换为另一个具有用户定义名称的文件。下面是我拼凑的代码

rem @echo off
setlocal enableDelayedExpansion

cls

:Check_Filename
set "_Filename="
set /p _Filename=Enter filename to be created:

if not defined _Filename echo You must enter a value. Try again.&goto Check_Filename

set "test=%_Filename:~0,1%"

for %%C in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if defined test set "test=!test:%%C=!"

if defined test echo Invalid input. Try again.&goto Check_Filename

if not defined test echo %_Filename%
Set "errorlevel="
echo %_Filename% | findstr /i /R ".java" > nul

if %errorlevel% == 0 (
echo Java extention located
type f:\java\Template.txt > f:\java\%_Filename%
echo %errorlevel% 

) else (
echo Java extention not located
echo %errorlevel%
type f:\java\Template.txt > f:\java\%_Filename%.java
)
)
它可以工作,但是因为该文件被用来创建Java脚本的主干,所以我希望FOR语句能够计算第一个字符的大小写,而目前它并没有这样做。我也尝试在FOR语句中使用这些字符的十六进制表示,但没有成功

谁能帮帮我吗

多谢各位

试试这个:

@echo off & setlocal
:Check_Filename
set "_Filename="
set /p "_Filename=Enter filename to be created: "

if not defined _Filename echo You must enter a value. Try again.&goto:Check_Filename

echo(%_Filename:~0,1% | findstr /r "[ABCDEFGHIJKLMNOPQRSTUVWXYZ]" || (echo Invalid input. Try again.&goto:Check_Filename)

完美的非常感谢你。我只花了大约12个小时试图解决这个问题:)。