我很确定FOR命令将处理这个放置我似乎无法得到正确的语法(总是吸入编程)。通过子目录,并创建一个文件的副本,如果它存在
我想通过所有的子目录指定的父目录下,如果dog.txt文件在该子目录存在,使得它的一个副本叫cat.txt
这是我得到的最接近,但它的父目录把cat.txt:
for /r %f in (dog.txt) do copy %f cat.txt
我很确定FOR命令将处理这个放置我似乎无法得到正确的语法(总是吸入编程)。通过子目录,并创建一个文件的副本,如果它存在
我想通过所有的子目录指定的父目录下,如果dog.txt文件在该子目录存在,使得它的一个副本叫cat.txt
这是我得到的最接近,但它的父目录把cat.txt:
for /r %f in (dog.txt) do copy %f cat.txt
你很近,你只需要使用路径从找到的文件也。还应该防止路径/文件中有空格。在文件名中没有通配符的情况下,您可能会发现for循环会尝试复制到每个目录中,无论是否存在文件,以避免添加通配符或使用(如果存在)。
for /r %f in (dog.txt) do if exist "%f" copy "%f" "%~dpfcat.txt" /y
和一个警告,如果你把它放在bat文件中,你需要转义%符号。
for /r %%f in (dog.txt) do if exist "%%f" copy "%%f" "%%~dpfcat.txt" /y
你真的在运行DOS而不是Windows?你是八十年代的时间旅行者吗? – Barmar 2014-10-04 00:51:08
@Barmar自动化是未来的事情不是从过去 – 2014-10-04 01:06:11
我很乐于接受创意! – MikeDC 2014-10-04 01:48:07