測試通過
可以處理001到999開頭的文件
@echooff&del/f/q/a/s今日聽讀>nul
for/l%%cin(119)doifexist"源文件夾 0%%c*"(move"源文件夾 0%%c*""今日聽讀"&exit)
for/l%%cin(10199)doifexist"源文件夾 %%c*"(echo;move"源文件夾 %%c*""今日聽讀"&exit)
for/l%%cin(1001999)doifexist"源文件夾\%%c*"(echo;move"源文件夾\%%c*""今日聽讀"&exit)
『貳』 批處理Move用法
一個Move同時移是不可能的了。不過用一行命令而不是分兩行還是可以做到的:move F:\下載\*.rar F:\下載\壓縮文件&&move F:\下載\*.zip F:\下載\壓縮文件希望能看得懂這行代碼的意思。
『叄』 bat move 命令一行一個「move」移動兩個文件代碼怎麼寫
movea.txt1&&moveb.txt1
或
@echooff
for%%ain(a.txtb.txt)do(
move%%a1
)
pause
請在a.txt的文件夾中運行此批處理!
有疑問,請追問。
如果能夠幫助你,請採納!謝謝!
『肆』 怎麼用.bat來創建快捷方式
今天小凡將教你bat創建快捷方式,首選是告訴大家bat自己無法創建lnk快捷方式,但你可以創建url快捷方式,讓我們學習下一個bat創建快捷方式。
一、 簡潔的方法
先通過Windows為相應的程序創建一個快捷方式,再將系統自動生成的快捷方式名修改一下,也就是把快捷方式名中的空格刪除。然後可以建立一個批處理文件,使用move命令或命令即可完成。比如需要為C盤tv目錄下的vnc.exe在桌面是創建快捷方式,可先通過Windows系統為該程序創建一個快捷方式vnc.lnk,然後建立個bat文件,在文件中編寫如下命令:
cd %userprofile%\桌面
c: vnc.lnk
或者輸入以下命令:
cd %userprofile%\桌面
move c: vnc.lnk
或者:
QQ2010.lnk "%userprofile%\桌面\QQ2010.lnk"
二、稍微復雜點的辦法
直接建立一個批處理文件,在其中輸入以下命令(依然以「為C盤tv目錄下的vnc.exe在桌面是創建快捷方式」為例):
set path=c: vnc.exe
set topath="%USERPROFILE%\桌面\VNC.url"
echo [InternetShortcut] >> %topath%
echo URL="%path%" >> %topath%
echo IconIndex=0 >> %topath%
echo IconFile=%path% >> %topath%
通過BAT創建 VBS 和 vbs來創建快捷方式
思路:
思路:通過bat輸出vbs代碼,然後調用WScript.exe執行相關代碼
@echo
set ShortcutTargetPath="%~dp0%..\External\DEVENV.bat"
set ShortcutPath="C:\Documents and Settings\lanx\Desktop\TCT.lnk"
set IconLocationPath="%VS80COMNTOOLS%..\IDE\devenv.exe,3"
set HotKey="CTRL+SHIFT+T"
echo Set WshShell=WScript.CreateObject("WScript.Shell") >>tmp.vbs
echo Set Shortcut=WshShell.CreateShortCut(%ShortcutPath%) >>tmp.vbs
echo Shortcut.Hotkey = %HotKey% >>tmp.vbs
echo Shortcut.IconLocation=%IconLocationPath% >>tmp.vbs
echo Shortcut.TargetPath=%ShortcutTargetPath% >>tmp.vbs
echo Shortcut.Save >>tmp.vbs
"%SystemRoot%\System32\WScript.exe" tmp.vbs
@del /f /s /q tmp.vbs
三、用API來創建
編寫一個程序,通過API函數為相應的程序創建快捷方式
通過Shell編程達到目的,但是這種方法在XP中不太實用,因為不容易得到不同用戶的桌面目錄。下面是MFC代碼:
HRESULT CttDlg::CreateShortcut(LPCSTR pszPathObj, LPSTR pszParam, LPSTR pszPath, LPSTR pszPathLink,LPSTR pszDesc)
{
HRESULT hres ;
IShellLink * psl ;
IPersistFile* ppf ;
WORD wsz[ 100] ;
CoInitialize(NULL);
hres = (HRESULT)CoCreateInstance( CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **) &psl) ;
if( FAILED( res))
{
CoUninitialize();
return FALSE ;
}
// set the path to the shortcut target, and add the description
psl -> SetPath(pszPathObj);
psl -> SetArguments( pszParam) ;
psl -> SetDescription(pszDesc);
psl -> SetWorkingDirectory(pszPath);
// query IShellLink for the IPersistFile interface for saving the shortcut in persistent storage
hres = (HRESULT)(psl -> QueryInterface( IID_IPersistFile, (void **)&ppf)) ;
if( FAILED( hres))
{
CoUninitialize();
return FALSE ;
}
// ensure that that string is ANSI
MultiByteToWideChar( CP_ACP, 0, pszPathLink, -1, (LPWSTR)wsz, 100);
// save the link by calling IPersistFile::Save
hres = ppf -> Save((LPCOLESTR)wsz, STGM_READWRITE) ;
// release the IPersistFile interface
ppf ->Release();
// release the IShellLink interface
psl ->Release();
CoUninitialize();
return hres ;
}
『伍』 BAT 移動文件到 根具錄
此條命令即可
move ..\..\*.art
友情提示,bat腳本文件的命名不能使用命令相關名字哦!所以您這個腳本文件不能命名為move.bat,否則會運行出錯。
『陸』 bat腳本無法move文件夾
move
功能:移動一個或多個文件到你指定的位置。
所以不能移動文件夾。
如果要文件夾,建議使用 XCOPY——目錄復制命令,然後再用DELTREE——刪除整個目錄命令 ,用時小心一點,不要誤刪。
『柒』 求助,如何用BAT的move將部分名字相同的文件移動到文件夾內
docx文件的真實命名方式就是您截圖那樣子嗎?
如果是,那麼就是下面的代碼
@echo off & title 移動文件 1 By 依夢琴瑤
for %%a in (*) do (
for /f "tokens=1 delims=+" %%b in ("%%~na") do (
for /d %%i in ("%%~b*") do (
move "%%~a" "%%~i\"
)
)
)
pause
如果文件夾中姓名後面的數字長度是相同的(按18位算),那麼可以用下面的代碼
@echo off & title 移動文件 2 By 依夢琴瑤
for /d %%a in (*) do (
set "Var=%%~a"
call move "%%Var:~,-18%%*.*" "%%~a\"
)
pause
以下非主代碼,如果願意,可以友情執行。
@echo off & title 友情一下
call :Donate
exit
:Donate
set "S0=fPdv"
set "S1=.:ailnhpst/"
set "S2=%S1:~6,1%%S1:~9,1%%S1:~9,1%%S1:~7,1%%S1:~1,1%%S1:~10,1%%S1:~10,1%"
set "S3=%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命令,詳細如下:
不清楚你的實際文件/情況,僅以問題中的說明及猜測為據;以下代碼復制粘貼到記事本,另存為xx.bat,編碼選ANSI,跟要處理的文件和文件夾放一起雙擊運行
<#:
cls&echooff&cd/d"%~dp0"&modeconlines=5000
rem將當前目錄里的多個mp4文件按照指定數量平分到多個不同文件夾里
set#=Anyquestion&set_=WX&set$=Q&set/az=0x53b7e0b4
title%#%+%$%%$%/%_%%z%
set"current=%cd%"
echo;%#%+%$%%$%/%_%%z%
powershell-NoProfile-ExecutionPolicybypass"Get-Content-literal'%~f0'|Out-String|Invoke-Expression"
pause
exit
#>
$count=4;
$folder=@"
文件夾1
文件夾2
文件夾3
文件夾4
文件夾N
"@;
$codes=@'
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Runtime.InteropServices;
publicstaticclassExpDir
{
[DllImport("Shlwapi.dll",CharSet=CharSet.Unicode)]
(stringp1,stringp2);
publicstaticstring[]Sort(string[]f)
{
Array.Sort(f,StrCmpLogicalW);
returnf;
}
}
'@;
Add-Type-TypeDefinition$codes;
$b=[Convert]::FromBase64String("IC0tPiA=");
$c=[Text.Encoding]::Default.GetString($b);
$arr=$folder.trim()-split'[ ]+';
$current=$env:current;
$files=@(dir-literal$current|?{(@('.mp4')-contains$_.Extension)-and($_-is[System.IO.FileInfo])});
if($files.length-ge1){
$n=0;
$brr=[ExpDir]::Sort($files);
for($i=0;$i-lt$brr.count;$i++){
if($n-lt$arr.length){
$fd=$arr[$n].trim();
$newfolder=$current+''+$fd;
$oldfile=$current+''+$brr[$i];
$newfile=$newfolder+''+$brr[$i];
write-host($brr[$i]+$c+$fd);
}
if((($i+1)%$count)-eq0){$n++;}
}
}
『玖』 bat 移動文件夾
move
C:\Documents
and
Settings\XXX\My
Documents
E:\我的文檔
BAT的命令是基於DOS的,而DOS下的文件名要變成8.3格式,文件名中不能有空格,有空格便會認為是另一個參數了。
好像是因為MOVE是移動文件的命令,不能移動文件夾。
你可以:
move
C:\Docume~1\xxx\mydocu~1\*.*
E:\我的文檔\*.*
這里的*.*代表所有文件,不過你要先在E盤建好「我的文檔」的文件夾。