0

我设计了一种从路径和扩展名中删除文件名的方法(用星号替换文件名)。

但是,输出文件在右引号之前添加了一个额外的空格,我不知道为什么或如何解决这个问题?

@echo off

SET EXTENT=%~x1
SET PATH=%~dp1

SET /P FILETYPE=

rem SET FILETYPE="%PATH%*%EXTENT%"

echo %FILETYPE%

pause

Type C:\HELLO.txt | findstr /I /V /C:%FILETYPE% >>C:\TEMP.txt

DEL /S/Q "C:\HELLO.txt"

ren "C:\TEMP.txt" "HELLO.txt"

DEL /s/q "C:\TEMP.txt"
4

1 回答 1

0

更新

在更好地理解了这个问题后,我改变了这个答案。

我认为这段代码接近你想要的。您可能需要使用该FINDSTR命令的正则表达式。

@ECHO OFF

SET EXT=%~x1

FINDSTR /I /V /C:%EXT% HELLO.TXT >>TEMP.TXT
DEL /Q HELLO.TXT
REN TEMP.TXT HELLO.TXT
于 2013-01-10T17:11:16.827 回答