作者tsaiminghan (nahgnimiast)
看板EZsoft
標題[請益] windows powershell copyhere
時間Sun Aug 23 15:54:30 2020
我使用powershell寫script把電腦裡的檔案複製到手機中
現在有個問題copyhere的命令是異步的,所以script本身
必須自己想辦法等到命令完成後,才可以結束,
網路上有個簡單的方法,就是去手機中看檔案存不存在,
不過這個方法碰到檔案已存在時,會有問題
我目前想到的是複製先把檔案刪了。不知還沒有沒其它
更好的方式?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.87.47 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/EZsoft/M.1598169273.A.14B.html
1F:→ spfy: 檢測寫入時間 PS印象用的是.NET吧 有這方法 08/23 16:52
好像不行
mtp(Media Transfer Protocol)抓出來的ModifyDate,看起來不正確。
Application : System.__ComObject
Parent : System.__ComObject
Name : puty.reg
Path :
::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\\?\usb
#vid_18d1&pid_4e
e1
#91ay173c7#{6ac27878-a6fa-4155-ba85-f98f491d4f33}\SID-{10001,,
55387860992}\{83545B5A-0000-0000-0000-000000000000}\{0343B42F-00
00-0000-0000-000000000000}
GetLink :
GetFolder :
IsLink : False
IsFolder : False
IsFileSystem : False
IsBrowsable : False
ModifyDate : 1899/12/30 0:00:00
Size : 0
Type : 登錄項目
※ 編輯: tsaiminghan (220.136.104.36 臺灣), 08/23/2020 20:31:49
3F:→ cancelpc: 為何不用 .net 裡現成的 複製檔案 函式 08/24 07:29
因為我的程式是script,想說可以寫powershell script
另外就是MTP的話,好像不能用Copy
5F:→ spfy: 雖然不太懂PS 但它好像只是和.NET共用CLR 實際語法不太一樣 08/24 09:23
6F:→ spfy: 檢測日期不行的話試試看每次複製的時候建立一個空白文字檔 08/24 09:24
7F:→ spfy: 檔名用複製日期 以後每次都檢測該檔名的日期? 08/24 09:25
8F:→ spfy: 雖然感覺直接刪除後複製比較簡單 但應該時間會長很多吧... 08/24 09:26
powershell的delete操作,會跳出視窗,
每次複製時都會跳出刪除視窗實在是怪怪的
最後還是直接sleep 2秒,讓人有時間去按
取代檔案的視窗。
加日期的話,還要刪掉原來的檔案,也是麻
煩(主要是會跳視窗)
※ 編輯: tsaiminghan (220.136.103.151 臺灣), 08/24/2020 10:44:38
9F:→ enthos: blog.daiyanyingyu.uk/2018/03/20/powershell-mtp/ 08/24 10:25
謝謝
這篇我看過了,我寫的script就是參考它的,但是它是
把檔案從手機中複制出來,而且檔案存在就跳過,沒辦
法解決我的問題
※ 編輯: tsaiminghan (220.136.109.72 臺灣), 08/24/2020 17:00:49
10F:推 cancelpc: 頂多複製前先檢查先刪,況這函式記得有參數是可以直接覆 08/26 19:11
11F:→ cancelpc: 蓋 08/26 19:11
12F:→ cancelpc: 刪除也用 .net 就不會跳出視窗,還有視窗的幾乎都是shel 08/26 19:12
13F:→ cancelpc: l層級提供的函式 08/26 19:12
14F:推 cancelpc: System.IO.File.Copy(s, destFile, true);第3個參數就是 08/26 19:14
15F:→ cancelpc: 要不要直接覆蓋存在的檔 08/26 19:15
16F:→ cancelpc: 直接全用 .net fx 的,不要跟 OS shell 層級混用 08/26 19:15
謝謝
或許用net可以達到,不過用net,放的就是exe,我是希望盡量
不要放binary
※ 編輯: tsaiminghan (220.136.106.68 臺灣), 08/28/2020 19:59:01
17F:推 cancelpc: 我指的是用 .net fx 的 lib 08/30 01:28