Batch file 剥离文件扩展名,但仅当其存在时
我有个问题 我想知道如何将文件扩展名从其名称中剥离,但前提是它首先存在,因此仅剥离最后四个字符是行不通的 我使用批处理 这导致我的delema:Batch file 剥离文件扩展名,但仅当其存在时,batch-file,Batch File,我有个问题 我想知道如何将文件扩展名从其名称中剥离,但前提是它首先存在,因此仅剥离最后四个字符是行不通的 我使用批处理 这导致我的delema: rem SETS THE NAME THE USER WANTS TO SAVE THE FILE AS... SET /P MY_NAME= FILE NAME: REM SAVES FILE AS INDICATED BY USER... ECHO %MYTEXT% > "%MY_DIR%\%MY_NAME%.txt" 我可以完全关
rem SETS THE NAME THE USER WANTS TO SAVE THE FILE AS...
SET /P MY_NAME= FILE NAME:
REM SAVES FILE AS INDICATED BY USER...
ECHO %MYTEXT% > "%MY_DIR%\%MY_NAME%.txt"
我可以完全关闭扩展(第二行代码),但用户可能不会自己在那里添加扩展。[记录此问题由@npocmaka回答] 要检查文件是否存在,请使用:
if [not] exist %myfile% (something)
要获取不带扩展名的文件名,请使用:
for /f %%F in (%myfile%) do ( echo %%~nF)
据我所知,Windows独家批处理。什么例子?我所掌握的只是如何去掉最后四个角色的刺。现在它不是很难,因为我的程序要求用户输入一个文件名,他们可能会实际键入带有扩展名的文件名,从而生成一个文件名,例如example.txt.txt或不生成example.txt。要检查文件是否存在,请使用
如果[不]存在%myfile%(某物)
。要获取不带扩展名的文件名,请使用for/f%%f in(%myfile%)执行以下操作(echo%%~nF)
设置/P MY_NAME=文件名(不带扩展名):怎么样?