Написание командного файла, который перемещает все файлы, кроме себя [закрыто]

-1

Я работаю над простой программой очистки: она перемещает все имеющиеся у меня файлы в новую папку в этой папке. Тем не менее, он перемещает и сам пакет, чего я не хочу. Есть ли способ (желательно) исключить сам пакетный файл или хотя бы все пакетные файлы?

gpg5
источник
1
Единственный способ сделать это в пакете, о котором я знаю, - это скрыть файл перед началом копирования и показать его после. Однако это можно сделать в PowerShell довольно легко, если это будет приемлемым.
Джефф Цейтлин
Однако вы должны знать, что SU.SE не является сервисом для написания кода; лучшие вопросы - это те, которые предоставляют полезную информацию, чтобы те, кто отвечает, могли помочь вам придумать собственный правильный ответ. Для чего-то вроде этого вы должны показать, что вы пробовали, и описать, как это не получается. Посмотрите, как задать хороший вопрос .
Джефф Цейтлин
Заголовок ссылается на исключение как тип файла (* .bat), в то время как вопрос касается конкретного файла (который может быть одним из многих файлов bat или единственным, может быть даже идентифицируемым как стандартная переменная). Вы не описываете коллекцию имен файлов и типов. Например, может быть целесообразно использовать шаблоны включения, а не исключения?). Можете ли вы сделать вопрос более конкретным?
fixer1234
Вам нужно привести примеры этой логики ... возможно, IF [%%~A]==[%~NX0] GOTO EOFили что-то в этом роде ... хотя в вашем вопросе не хватает гораздо более необходимых деталей. %~NX0является заменой самого имени пакетного файла или %~FPNX0является полным явным путем плюс имя пакетного файла и расширение.
Сок Pimp IT

Ответы:

1

Вы не предоставляете нам никакой информации об используемых методах, но вы можете использовать robocopy (в комплекте с windows), который может принять список файлов для исключения:

Так что для гипотетического «foo.bat» (обратите внимание, что в примере не учитывается, что текущий рабочий каталог может отличаться) [см. Например] :

md .\temp
robocopy .\ .\temp /MOV /XF foo.bat
pause

Предположительно, вы захотите «параметризовать» каталог назначения и т. Д., И я думаю, что вы можете использовать параметр для указания имени вызывающего пакетного файла.

Йорик
источник