iT邦幫忙

0

關於bat

bat
  • 分享至 

  • xImage

想請問一下我想寫一個可以用區域網路傳輸資料的bat,因為我有很多台電腦要同時派版
@echo off

@echo off
:loop_Start
set loopcount=1
set var_ip=192.168.0.20

:loop_Repeat
@echo on
echo %var_ip%%loopcount%
@echo off
pause
set /a loopcount=loopcount+1

net use \%loopcount% /delete

pause

net use \%loopcount% /user:agribank 123456

copy C:\DJimage\eOpen\BackgroundPusher.Mvp.exe \%loopcount%\C$\Djimage

大概寫這樣為什麼我無法把變數拉入net 與copy當IP使用

看更多先前的討論...收起先前的討論...
slime iT邦大師 1 級 ‧ 2020-01-14 23:45:45 檢舉
序號可以用 for /L %f in (1,1,254) 這種方式
提示:「\\」
misadm iT邦高手 10 級 ‧ 2020-01-15 09:39:05 檢舉
你在 net 與 copy 中,只用到『loopcount』這個變數,而且指令不完整,當然會失敗。以你的例子來說會變成:
net use \\1 /user:agribank 123456
  你的電腦名稱變成只有『1』而且沒有指定是哪個『分享資料夾』

再說,你的 copy 後面都直接使用 UNC 路徑了,就沒有必要再使用 net use 了
感覺應該是參照這篇作的吧
https://ithelp.ithome.com.tw/questions/10188350
寫把你的程式 全部都用程式碼的方式 會比較讓人容易看得懂
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
蟹老闆
iT邦大師 1 級 ‧ 2020-01-30 01:56:29

提問者原來的批次內容有數個地方需要修正,直接參考這個或許較直接

@Echo Off
Set IP=192.168.0
Set IPS=1
Set IPE=254
For /L %%i In (%IPS%,1,%IPE%) Do (
    Net Use \\%IP%.%%i /user:agribank 123456 2>Nul&&(
        Copy /Y "C:\DJimage\eOpen\BackgroundPusher.Mvp.exe" "\\%IP%.%%i\C$\Djimage" 2>Nul||Echo %IP%.%%i 檔案複製失敗,請檢查目標檔案是否使用中或沒有該資料夾....
        )||Echo %IP%.%%i 動作未完成,檢查網路問題...
)

IP是所屬網段
IPS是開始的IP
IPE是結束的IP

我要發表回答

立即登入回答