我做了一些研究,但没有找到,我发现我无法开展工作。这是我在stackoverflow上找到的一件事。 cmd - batch file rename - Stack Overflow
我使用大炮复印机将文件扫描到网络驱动器上的文件夹中。我在扫描文件之前命名文件,复印机在文件末尾放置一个时间戳,看起来像“_20141021165008”,我想删除文件发送到计算机时的时间戳。文件被扫描到三个位置之一,我希望他们每个人都做同样的事情。
这就是来自复印机的样子:
001-Bob_(1-100)_20141021165008
002-Bob_(1-25)_20141021170515
1-67676_Ex.Sheets_20141021172043
这就是我希望它们的样子:
001-Bob_(1-100)
002-Bob_(1-25)
1-67676_Ex.Sheets
此外,名称和数字一直在变化。 我有它,以便文件扩展名不可见。但这些文件占99.9%的时间.PDF
我想做的是:
我有一个批处理文件,删除文件名的最后12个字符,我创建了一个快捷方式,并使用键盘快捷方式,但它不适用于所有,不完全自动化,我必须重置每隔几天就有一个快捷方式,因为它只是停止工作......
运行Win7 Pro 64x
感谢任何有帮助的人!
答案 0 :(得分:2)
几乎,但不完全是你所要求的。并且可以根据需要多次运行该命令,而无需更改已重命名文件的名称。
ren *_*.pdf *_.pdf
上述命令将使用您在问题中列出的文件提供以下结果:
001-Bob_(1-100)_20141021165008.pdf --> 001-Bob_(1-100)_.pdf
002-Bob_(1-25)_20141021170515.pdf --> 002-Bob_(1-25)_.pdf
1-67676_Ex.Sheets_20141021172043.pdf --> 1-67676_Ex.Sheets_.pdf
请参阅How does the Windows RENAME command interpret wildcards?,了解上述命令的工作原理。
答案 1 :(得分:0)
for /f "tokens=1-3* delims=_" %A in ('dir /b *_*_*.*') do ren "%A_%B_%C%D" "%A_%B%D"
这将读取dir命令的输出。它不适用于具有两个以下下划线的文件。如果你需要那就这么说。在批处理文件中,将%A等更改为%% A。
答案 2 :(得分:0)
@echo off
setlocal
set "target_folder=c:\some_dir"
pushd "%target_folder%" 2>nul
rem --Remove comments in case of network drive.
rem net use h: %target_folder%
rem pushd h:
setlocal enableDelayedExpansion
for %%a in (*_2014*) do (
set filename=%%~na
set newname=!filename:~0,-14!
rem --Remove the echo if the new file name is OK
echo ren "%%~nxa" "!newname!%%~xa"
)
endlocal
endlocal