iT邦幫忙

0

DOS - 抓檔案名並檢查是否有相同檔案及 移動檔案

  • 分享至 

  • xImage

Hi 大大,

我想要寫一個 Bat file, 可以把 C:*.msi 檔案 move 到 D:\Dest1\ 裡面.
如果 D:\Dest1\ 裡面有這個 msi 檔案, 需要先 move D:
Dest1\ 到 E:\Dest2\ 裡面.

  1. 需要抓出 C:*.msi 的 * fileName
  2. 比對是否 D:\ 裡面有這個 fileName.msi
  3. If exist, move D:\Dest1\fileName.msi to E:\Dest2\ then move C:\fileName.msi to D:\Dest1\
  4. else, move C:\fileName.msi to D:\Dest1\

我 google 一些 DOS command, 我拿一些類似的來修改 結果不成功.
希望大大可以幫忙一下. 謝謝.

oxox iT邦研究生 3 級 ‧ 2022-08-23 10:13:50 檢舉
我有類似的用途,我沒做判斷,直接1搬2(反正沒檔案沒差),之後將0的搬到1。
隔天去2那邊改名檔案後重複上面的工作(1->2, 0->1)。
再隔天去2那邊刪除改名後的檔案,再改名後重複一開始的批次。
這樣達到:存兩份資料的需求!
matureox iT邦新手 5 級 ‧ 2022-08-23 14:22:10 檢舉
Hi oxox 謝謝你的回答, 你的做法不適合我.
因為 Dest2 裡面是保留上一個版本的 msi. Dest1 是目前版本. 0 是剛剛更新的版本.
所以沒有最新更新的版本是無法從 1 搬到 2 的.
Dest1 才有開放連結給使用者更新.
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
michaelwan
iT邦高手 1 級 ‧ 2022-08-23 16:25:20
最佳解答
@echo off
for %%1 in (c:\*.msi) do if exist d:\dest1\%%~nx1 (move d:\dest1\%%~nx1 e:\dest2\%%~nx1)
for %%1 in (c:\*.msi) do move %%1 d:\dest1\%%~nx1

像這樣?

我要發表回答

立即登入回答