![](/img/trans.png)
[英]Copying files from a dynamically created folder over a network using batch files?
[英]Copying files over the network using Batch File
@ECHO OFF
set /p TerminalName= Enter the PC you wish to relocate ECFs on:
ECHO Do you wish to relocate the ECFs on %TerminalName% ?
PAUSE
IF NOT EXIST "\\%TerminalName%\c$\Program Files\Google" (
ECHO You don't have Google installed
) ELSE (
ECHO You have Google installed!
ECHO Relocating the ECF Files! Here we go...
IF EXIST "\\%TerminalName%\c$\Program Files\Google" (
ECHO The ECF Folder already exists..
ECHO Moving ECFs now
cd \\%TerminalName%\c$\Program Files\Google
FOR %%f IN (*.ecf) DO move /y "%%f" "\\%TerminalName%\c$\Program Files\Google"
) ELSE (
ECHO No ECF Folder exists...Let's sort that out!
MKDIR "\\%TerminalName%\c$\Program Files\Google"
cd \\%TerminalName%\c$\Program Files\Google
ECHO Moving ECFs now
FOR %%f IN (*.ecf) DO move /y "%%f" "\\%TerminalName%\c$\Program Files\Google"
)
)
ECHO Finished!
PAUSE
每當運行上述批處理文件時,都會出現此錯誤:
CMD不支持將UNC路徑用作當前目錄。
Ps-抱歉,格式化...對於代碼來說,它不會全部變成灰色:(
可以使用PUSHD
命令代替CD
。 請記住,在內部PUSHD
將進行NET USE
並消耗OS中的“驅動器號”。 如果這樣做太多次,系統將用完“驅動器號”。
請記住在適當的時間進行POPD
。
更新:再次查看此內容,我懷疑您是否需要更改目錄。 要MOVE
到新目錄的文件在哪里? 需要做更多的分析。
這是一個適合您的任務的批處理代碼:
@ECHO OFF
SETLOCAL EnableDelayedExpansion
SET /P "TerminalName=Enter the PC you wish to relocate ECFs on: "
ECHO Do you wish to relocate the ECFs on !TerminalName! ?
PAUSE
SET "SourcePath=\\RemoteComputer\\c$\Program Files\Google\ECF_Folder"
SET "TargetPath=\\!TerminalName!\c$\Program Files\Google"
IF NOT EXIST "!TargetPath!" (
ECHO You don't have Google installed.
GOTO EndMoveECF
)
ECHO You have Google installed!
ECHO Relocating the ECF files! Here we go...
IF EXIST "%TargetPath%\ECF_Folder" (
ECHO The ECF folder already exists..
) ELSE (
ECHO No ECF Folder exists... Let's sort that out!
MKDIR "%TargetPath%\ECF_Folder"
IF ERRORLEVEL 1 (
ECHO Failed to create ECF folder "%TargetPath%\ECF_Folder".
GOTO EndMoveECF
)
)
ECHO Moving ECF files now ...
MOVE /Y "%SourcePath%\*" "%TargetPath%\ECF_Folder\"
ECHO Finished!
:EndMoveECF
ENDLOCAL
PAUSE
您需要相應地設置SourcePath
。 而且,您需要用您環境中合適的任何東西替換所有出現的ECF_Folder
。
文件移動是通過命令MOVE完成的,無需切換當前工作目錄,因為不需要這樣做。 並且命令MOVE也支持通配符,因此不需要FOR循環。
如果批處理文件的用戶在批處理文件中輸入無效的終端名稱(例如包含雙引號,尖括號或其他具有特殊含義的字符),則部分使用延遲的環境變量擴展。 打開命令提示符窗口並在該窗口中執行set /?
有關延遲擴展的詳細信息。
曾經有一個!TerminalName!
然后一次!TargetPath!
代替%TerminalName%
和%TargetPath%
。 在對遠程計算機上的Google目錄存在進行了肯定驗證之后,應可以安全地引用TargetPath
而不會延遲擴展。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.