Windows 8.1
我需要在此文件路径中重命名(特别是不要复制或移动)
D:\Users\hynek0\1703.08094.pdf – zástupce
到这条路
C:\Users\hynek0\1703.08094.pdf – zástupce
这里– zástupce
是捷克语的参考单词 (.lnk) 文件。
请注意这里的不同D:\
磁盘C:\
。
但我知道如果它位于同一磁盘和目录中,如何重命名:
C:\Users\a.pdf
到
C:\Users\b.pdf
此外,更广泛地说,我想重新命名全部文件
D:\Users\hynek0\*.pdf – zástupce
到
C:\Users\hynek0\*.pdf – zástupce
最后没有– zástupce
:
D:\Users\hynek0\*.pdf
到
C:\Users\hynek0\*.pdf
答案1
您误解了“重命名”的实际含义。
重命名意味着更改某个文件或文件夹的名称或扩展名。您尝试执行的是移动操作。
您必须先将 PDF 文件复制到 D 盘和 C 盘上的同一文件夹中。然后您必须删除 D 盘中的文件。这样 PDF 将存在于 C 盘上的文件夹中。
像这样,您可以使用批处理脚本来移动所有 PDF 文件:
@echo off
cd "Source path"
for %%a in (*.pdf) do (
move "%%~fa" "Destination path\"
)
exit /b 0
答案2
为什么不直接删除不需要的字符串?
Ren "C:\Users\hynek0\*.pdf – z?stupce.lnk" "*.pdf.lnk"
:: or, without/removing .lnk ::
Ren "C:\Users\hynek0\*.pdf – z?stupce.lnk" "*.pdf"
或者,复制并重命名此文件:
copy "D:\Users\hynek0\*.pdf – zástupce.lnk" "C:\Users\hynek0\*.pdf.lnk"
rem :: or, wit removing .lnk ::
copy "D:\Users\hynek0\*.pdf – zástupce.lnk" "C:\Users\hynek0\*.pdf"
您还可以使用子字符串:
rem :: string: .pdf – zástupce.lnk
rem :: |||||||||||||||||||
rem :: length: 1234567890123456789 == 19
rem :: recursive loop rename and removing the last 19 characters: "%_name:~0,-19%.lnk"
for /r "C:\Users\hynek0" %i in (*.lnk)do set "_name=%~nxi" && @call ren "%~i" "%_name:~0,-19%.lnk"
rem :: rename removing the last 19 characters: "%_name:~0,-19%.lnk"
进一步阅读: