Мне нужно переместить файл test1.txt из C:\temp\ в D:\temp\ (например). Если файл с таким же именем уже существует в папке назначения D:\temp\, я хочу перенаправить исходный файл переместить и переименовать в test1.txt~. Можно ли еще упростить или оптимизировать скрипт?
move c:\temp\test1.txt d:\temp\test1.txt~ || echo No | move /-Y c:\temp\test1.txt d:\temp\test1.txt
Мне нужна аналогичная команда Linux для Windows:
test -d DestinationFolder || mkdir -p DestinationFolder && mv -bfv SourceFile DestinationFolder
@aschipfl Мне нужно не только «копировать все файлы без перезаписи», мне нужно «переместить исходный файл переименовать»
commandA && commandB Run commandA, if it succeeds then run commandB
echo No | move /-Y c:\temp\test1.txt d:\temp\test1.txt && move c:\temp\test1.txt d:\temp\test1.txt~
Я думаю, это будет правильно.
Используйте
if exist
, чтобы проверить, существует ли уже файл в месте назначения. В любом случае, что, если новое имя уже существует? Также взгляните на этот ответ (заменаcopy
наmove
не должна иметь большого значения); вместо нумерации вы можете просто добавить строки, такие как~
,~~
и т. д. (это было бы легко реализовать в связанном ответе)