以下是问题:
我有一个文件夹,比方说C:\myFolder
,在这个目录中,我有很多子文件夹,在每个子文件夹中,我只有一个文件夹,包含pdf文件,所以我的文件结构看起来像这样:C:\myFolder\someFolderInMyFolder\theOnlyFolderInThisFolder\*.pdf
,现在我想将所有这些pdf向上移动一级,这样它就像这样:C:\myFolder\someFolderInMyFolder\*.pdf
。是否有任何命令行命令或脚本(可由Cygwin执行)对我有帮助?
可能使情况复杂化的是,我自己手动将一些文件移动一级,因此如果有检查条件,它会有所帮助。
我有一些.zip
个名称由计算机生成的文件,格式为mm/dd/yy/fileIndex.zip
,而fileIndex就像No.001
。当我将提取的文件夹上传到Dropbox,并在我的iPad上查看文件时,它看起来很奇怪,因为无法完整显示完整的文件夹名称,因此我想将每个文件夹重命名为someIndex
,在上面的示例中,从No.001
到001
,同样的问题在这里:任何命令或shell脚本?
答案 0 :(得分:1)
您可以使用@Endoro建议的略微修改版本将所有PDF上移一级:
@echo off
for /r "C:\myFolder" %%f in (*.pdf) do move "%%~ff" "%%~dpi.."
但是,脚本没有通用的方法来区分已经移动的文件和尚未移动的文件。如果你解开手动动作可能是最好的。否则,您必须找到一些区别特征,或者根据名称列表检查每个名称,例如: like this
您可以重命名这样的文件:
@echo off
setlocal EnableDelayedExpansion
for /r "C:\myFolder" %%f in (No.*.zip) do (
set name=%%~nxf
set name=!name:No.=!
ren "%%~ff" "!name!"
)
endlocal
FTR,我在某种程度上怀疑你的文件名是mm/dd/yy/fileIndex.zip
。正斜杠不是Windows中文件名的有效字符。