Как мне только скопировать файл, затем вручную перейти к другому месту назначения, а затем вставить его. (Без фиксированного пути)

310
Tom

Мне нужно переместить файл из одного каталога в другой без каких-либо фиксированных путей в команде копирования / вставки. Это означает, что я, вероятно, не могу иметь команду копирования / вставки в одну строку:

Структура папок выглядит следующим образом:

  • Главная папка
    • Files.dir
    • log.dir
    • executable.bat

Это мой код:

cd log if exist flist.log del flist.log cd .. cd Files dir /b /a-d>flist.log copy flist.log cd .. cd log paste flist.log 

Или, если возможно, есть что-то вроде этого:

cd log if exist flist.log del flist.log cd .. cd Files dir /b /a-d>flist.log (save in Files.dir without a fixed path) 

Я не могу использовать фиксированный путь, потому что папка, в которой он выполняется, должна иметь возможность перемещаться.

Спасибо :)

0
`Files.dir`? Вы пытаетесь написать один пакетный скрипт для Windows, Unix, _and_ OpenVMS? grawity 5 лет назад 0

2 ответа на вопрос

0
grawity

Вы не Копирование / вставка файлов обычно не существует в командной оболочке.

Вместо этого вы прямо указываете, куда перемещать файл:

if exist log\flist.log del log\flist.log  cd Files dir /b /a-d > flist.log  move flist.log ..\log\ 

Или, на самом деле, прямо скажи ему, куда писать файл в первую очередь:

cd Files dir /b /a-d > ..\log\flist.log 

Нет никаких оснований для вашего требования "Нет посторонних". Как видите, ни в одном из приведенных выше примеров не используется фиксированный путь; все команды принимают относительные пути..или без) так же, как cdи.

** Это сработало, спасибо! ** Я искал ответ на этот вопрос, но я только нашел, как использовать xcopy и тому подобное. В основном однослойные с фиксированными дорожками. Казалось, что решить несложно, но найти ответ, подобный твоему, было нелегко :) Tom 5 лет назад 0
0
dave

Похоже, что цель вашего скрипта - создать список файлов, которые содержатся в подкаталоге filesвашего текущего рабочего каталога, список помещается в подкаталог, logкоторый находится рядом files.

Относительные пути работают, нет необходимости быть cdповсюду.

dir /b /a-d files >log\flist.log

Это намеренно, что вы получите две копии списка, что, как кажется, имеет место в вашем первом примере, а затем выполните это с

copy /y log\flist.log files\flist.log