CMD/BAT - Копирование и удаление файла перетаскиванием.

Ответить
 • Просмотры: 1
Аватара пользователя
avator@vk

CMD/BAT - Копирование и удаление файла перетаскиванием.

Сообщение avator@vk »

Добрый день всем!

Скажите пожалуйста возможно ли сделать так, что бы при перетаскивании произвольного файла на батник или его ярлык, файл копировался в директорию D:/1/ ,а из текущего местоположения удалялся, при этом другие файлы не удалялись?
Аватара пользователя
avator@vk

Re: CMD/BAT - Копирование и удаление файла перетаскиванием.

Сообщение avator@vk »

Возможно. И первый же вопрос, который возникает: что делать, если в каталоге назначения окажется файл с тем же именем?
Аватара пользователя
avator@vk

Re: CMD/BAT - Копирование и удаление файла перетаскиванием.

Сообщение avator@vk »

Цитата Iska:



Возможно. И первый же вопрос, который возникает: что делать, если в каталоге назначения окажется файл с тем же именем?
CMD/BAT - Копирование и удаление файла перетаскиванием.




Круто. Заменить.

Там дальше скрипт его заберёт и очистит директорию.
Аватара пользователя
mwz

Re: CMD/BAT - Копирование и удаление файла перетаскиванием.

Сообщение mwz »

avator@vk, кстати, всё равно ярлык батника класть — а можно положить вместо него ярлык на D:\1\ и тащить туда файл правой кнопкой мышки, с выбором "Переместить. Изображение
Аватара пользователя
avator@vk

Re: CMD/BAT - Копирование и удаление файла перетаскиванием.

Сообщение avator@vk »

Цитата mwz:



кстати, всё равно ярлык батника класть — а можно положить вместо него ярлык на D:\1\ и тащить туда файл правой кнопкой мышки, с выбором "Переместить.
CMD/BAT - Копирование и удаление файла перетаскиванием.




Я думал об этом, мне ещё скрипт надо запустить. Не так красиво будет.

А так взял файлик "бросил" в "черную дыру" и он улетел по smtp и следов от него нет )
Аватара пользователя
Iska

Re: CMD/BAT - Копирование и удаление файла перетаскиванием.

Сообщение Iska »

avator@vk, вот Вам скрипт WSH:



Скрытый текст

[spoiler]Код:
[/spoiler]

Код: Выделить всё

Option Explicit
Const strDestPath = "D:\1"
Dim strSourceFile
Dim objFSO
Dim strContent
If WScript.Arguments.Count = 1 Then
	Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
	strSourceFile = objFSO.GetAbsolutePathName(WScript.Arguments.Item(0))
	If objFSO.FileExists(strSourceFile) Then
		If objFSO.FolderExists(strDestPath) Then
			objFSO.CopyFile strSourceFile, strDestPath & "\", True
			If objFSO.FileExists(objFSO.BuildPath(strDestPath, objFSO.GetFileName(strSourceFile))) Then
				objFSO.DeleteFile strSourceFile, True
			Else
				WScript.Echo "Can't copy source file [" & strSourceFile & "] into destination folder [" & strDestPath & "]."
				WScript.Quit 3
			End If
		Else
			WScript.Echo "Can't find destination folder [" & strDestPath & "]."
			WScript.Quit 3
		End If
	Else
		WScript.Echo "Can't find source file [" & WScript.Arguments.Item(0) & "]."
		WScript.Quit 2
	End If
	Set objFSO = Nothing
Else
	WScript.Echo "Usage: Drag any file on me."
	WScript.Quit 1
End If
WScript.Quit 0







Сохраните приведённый код в файл с расширением .vbs и пользуйте, как планировали.



Update:[/i]


Цитата avator@vk:



мне ещё скрипт надо запустить.
CMD/BAT - Копирование и удаление файла перетаскиванием.




Можете совместить.
Аватара пользователя
avator@vk

Re: CMD/BAT - Копирование и удаление файла перетаскиванием.

Сообщение avator@vk »

Да это же чудо! Изображение Изображение Какой вы умный. Спасибо огромное. Как вообще можно за несколько секунд написать так.... Супер.
Аватара пользователя
YuS_2

Re: CMD/BAT - Копирование и удаление файла перетаскиванием.

Сообщение YuS_2 »

Раз уж cmd/bat, то
CMD/BAT - Ярлык для bat


Модифицируем его немного, для перемещения:



Код:

Код: Выделить всё

@echo off
set "folder=d:\1"
if not exist "%folder%" md "%folder%"
for %%i in (%*) do (
	move /y "%%~i" "%folder%"
)

- перемещать можно хоть на сам батник, хоть на ярлык, от этого батника...
Аватара пользователя
megaloman

Re: CMD/BAT - Копирование и удаление файла перетаскиванием.

Сообщение megaloman »

Паразитирую на решении YuS_2

Код:

Код: Выделить всё

@Echo Off
	Set "Folder=Z:\1"
	If Not Exist "%Folder%" Md "%Folder%"
	For %%i In (%*) Do (
		If Not Exist "%%~i\" >nul XCopy /H /R /Y "%%~i" "%Folder%\" &&Del /A "%%~i"
		If Exist "%%~i\"  >nul XCopy /H /R /E /Y  "%%~i\*.*" "%Folder%\%%~nxi\" &&Rd /Q /S "%%~i"
	)
pause
Exit /B

Оправдываюсь:

Моё решение годится для файлов и скрытых, и системных, и только для чтения.

Кроме того, мой код отработает и для папок. Если этого не надо, то выделенную строку удалить.

При этом останется контроль при ошибочном указании папки вместо файла.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»