command-line - 评估用户定义变量的第一个字符是否为大写

标签 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 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)

关于command-line - 评估用户定义变量的第一个字符是否为大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16310902/

相关文章:

macos - 从文件尾部修剪 N 行的简单方法是什么(不使用 'head' )?

C - 如何在 for 循环中仅打印最大的数字?

python - 在 Python 中打印的列表项前面添加数字

windows - 批处理 : "usebackq" not expected at this time

windows - 如何正确设置 Vim 的 makeprg (Windows)

audio - ffmpeg 获取所有声音设备(输入/输出)

C++ 执行脚本 Aprog 命令未找到

linux - *nix 有平衡方案 REPL 吗?

JavaScript 循环变量作用域

c++ - 如何在 Windows 命令行中读取输入 .in 文件