① bat脚本无法move文件夹
move
功能:移动一个或多个文件到你指定的位置。
所以不能移动文件夹。
如果要文件夹,建议使用 XCOPY——目录复制命令,然后再用DELTREE——删除整个目录命令 ,用时小心一点,不要误删。
② 求批处理BAT命令,移动文件到指定文件夹
测试通过
可以处理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)
③ 请问BAT中的命令 COPY和XCOPY有什么区别,还有REN和MOVE又有什么区别
是复制文件的,x是复制子目录(文件夹)的。 用来拷贝批量文件时,如:COPY C:\*.* D:命令,这个命令所拷贝的是C:盘下的不包括文件夹(及文件夹内的文件)的所有文件至D盘;而用XCPOY来拷贝批量文件时,如:XCOPY C:\*.* D:命令,这个命令所拷贝的是C盘下的所有文件至D盘,包括文件夹、文件夹中的所有文件,文件夹中的文件夹,文件夹中的文件夹中的所有文件。REN是重命名 举例你就明白了 G盘下有个ABC的文件夹 里边有个11.TXT的文件 用REN改成22.TXT只需要G冒号 回车(把盘符从C盘转到G盘) CD空格ABC回车(转到G:\ABC下) REN空格11.TXT空格22.TXT回车 就改好了或者直接 REN空格 G:\ABC\11.TXT空格22.TXT回车也OK,MOVE和COPY的用法是一直的 只是换个命令而已
④ 批量移动多个文件到多个文件夹的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++;}
}
}
⑤ 关于DOS下的MOVE命令..
功能:移动一个或多个文件到你指定的位置。MOVE 命令也可以用来重命名目录。
格式:MOVE [/Y|/-Y] [盘符:][路径]文件名[,[盘符:][路径]文件名[...]] 目标
参数:
要移动至少一个文件:
MOVE [/Y | /-Y] [drive:][path]filename1[,...] destination
要重命名一个目录:
MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2
[drive:][path]filename1 指定您想移动的文件位置和名称。
destination 指定文件的新位置。目标可包含一个驱动器号和冒号、一个目录名或组合。如果只移动一个文件并在移动时将其重命名,您还可以包括文件名。
[drive:][path]dirname1 指定要重命名的目录。
dirname2 指定目录的新名称。
/Y 取消确认改写一个现有目标文件的提示。
/-Y 对确认改写一个现有目标文件发出提示。
说明:
★MOVE命令可以跨分区移动文件,却不可以跨分区移动文件夹。
★对于跨分区移动文件时,如果目标位置存在和将要移动的文件同名时,系统会提示:“文件存在” 最后,命令将
不会执行。
★对于隐藏或系统属性的文件,只有把它们的属性去除后,move命令才会执行。
使用 MOVE 命令可以轻松地在不同的目录间移动文件。在 MS-DOS 6.22 或者更早的
版本中,REN 命令不可以用来更改目录的名字。MOVE 命令可以帮助你做这件事。自从视窗
95 开始,这一限制不再存在。在视窗 NT 系统中,MOVE 命令是一个内部命令所以你看不见
它的可执行文件 MOVE.EXE。MOVE 命令的语法很简单,就是“MOVE 源 目标”。注意视窗
NT 中的 MOVE 命令不支持指定多个“源”。一件奇怪的事情就是命令行上的“MOVE”
帮助,也就是“MOVE /?”或者“HELP MOVE”,里面说 MOVE 命令支持多个源,但实际上
它不支持。视窗帮助文件在这个问题上是正确的。
举例:
例1
move d:\abc d:\abcd
如果把文件夹abc移到文件夹abcd内。
例2
move 123.txt abc
把当前目录下的123.txt移动到当前文件夹abc内。这里都使用了相对路径,缺省路径情况下默认为当前目录。
例3
move 123.txt e:\abc
把当前目录下的123.txt移动到e:\abc目录下。
------------------------------------------------------------------------------------------------------
2.重命名文件(夹)
例4
move d:\abc d:\abcd
这里要注意一下,如果目标文件夹abcd不存在,则把abc移到d:\下,并把自身名称更改为abcd。
利用这一特性,move命令具备重命名功能。
例5
move d:\123.txt d:\abc\456.txt
如果 456.txt存在,系统将会提示你:改写 D:\456.txt 吗? (Yes/No/All):
当你输入Y后则123.txt会覆盖456.txt。如果456.txt不存在,则把123.txt移到d:\abc目录下,并重命名为456.txt。
例6
move /y 123.txt 456.txt
如果123.txt和456.txt都存在,通过/y参数后,系统不会提示你,而直接把123.txt覆盖456.txt。
例7
move 123.txt e:\abc\456.txt
对于跨区移动,如果456.txt存在会提示:文件存在。命令不会执行;如果456.txt不存在,则把123.txt移到e:\abc
目录下,并重命名为456.txt。
总结一下:
对于move A B这样的模式
1、如果A、B同为文件夹名,
①如果B存在,则把A移动到B目录下。
②如果B不存在,则把A移动到B所在的目录下,同时重命名为B。
2、如果A为文件名,B为文件夹名,
① 将把A移动到B目录下。
② 如果B文件夹内有和A文件同名的:
I A和B为同一分区,则提示:是否覆盖/不覆盖/全部覆盖?
II A和B为不同分区,则提示:文件存在。不做任何操作!
3、如果A、B同为文件名,
①A和B为同一分区,如果B存在,则系统会提示你是否将把A重命名为B;如果B不存在就把A移动到B所在的目录下
的同时,重命名 为B。
②A和B为不同分区,如果B存在,则命令不执行;如果B不存在,则把A移动到B所在的目录下并重命名为B。
⑥ 批处理Move用法
一个Move同时移是不可能的了。不过用一行命令而不是分两行还是可以做到的:move F:\下载\*.rar F:\下载\压缩文件&&move F:\下载\*.zip F:\下载\压缩文件希望能看得懂这行代码的意思。
⑦ BAT命令语法 move C:\* d:\ 复制C盘下面所有文件粘贴到D盘下面,这样写安全么 ,重复是不是自动覆盖了
不知道你为什么这样做,其中有一定风险是否知道。
理论上这样相当于剪切复制。需要自动覆盖的话加参数/y
move /y c:\* d:\
⑧ 批处理“move”命令怎么用
把d盘的1.txt移动到e盘:
move d:\1.txt e:\
用_1.txt替换1.txt
move _1.txt 1.txt
⑨ 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盘建好“我的文档”的文件夹。
⑩ bat move 命令一行一个“move”移动两个文件代码怎么写
movea.txt1&&moveb.txt1
或
@echooff
for%%ain(a.txtb.txt)do(
move%%a1
)
pause
请在a.txt的文件夹中运行此批处理!
有疑问,请追问。
如果能够帮助你,请采纳!谢谢!