Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 使用文件夹名称和序列号批量重命名文件-发送到菜单_Windows_Batch File_Command Line - Fatal编程技术网

Windows 使用文件夹名称和序列号批量重命名文件-发送到菜单

Windows 使用文件夹名称和序列号批量重命名文件-发送到菜单,windows,batch-file,command-line,Windows,Batch File,Command Line,我有一个叫sales的文件夹。我在那个文件夹里有imgxy.jpg、imgab.jpg等等。当我右键单击sales文件夹并发送到rename.bat文件(我已经将rename.bat文件复制到c:\documents and settings\username\send to)时,我希望sales文件夹中的文件更改为sales1.jpg、sales2.jpg等。对于我发送到此.bat文件的任何内容,这种行为都应该是正确的。昨晚windows 7上的以下代码运行正常。现在我是windows xp

我有一个叫sales的文件夹。我在那个文件夹里有imgxy.jpg、imgab.jpg等等。当我右键单击sales文件夹并发送到rename.bat文件(我已经将rename.bat文件复制到c:\documents and settings\username\send to)时,我希望sales文件夹中的文件更改为sales1.jpg、sales2.jpg等。对于我发送到此.bat文件的任何内容,这种行为都应该是正确的。昨晚windows 7上的以下代码运行正常。现在我是windows xp sp3,它不工作。它正在尝试重命名文件夹*c:\documents and settings\username*

请在下面帮助重命名.bat文件代码

@ECHO OFF
setlocal enabledelayedexpansion
set foldername=%1
for %%i in (%bar%) do set bar=%%~ni
FOR /D  %%# in (%bar%) DO (
PUSHD "%%#"
FOR %%@ in ("*") DO (
    set /a "inc+=1"
    Echo Ren: ".\%%~n#\%%@" "%%~n#!inc!%%~x@"
    Ren "%%@" "%%~n#!inc!%%~x@"
)
POPD
)

测试这个-它接受一个文件夹,而不是文件,但你在问题中提到的文件夹

不要叫它
rename.bat
,因为
rename
是一个内部命令

@ECHO OFF
setlocal enabledelayedexpansion
PUSHD "%~1"
set inc=0
FOR /f "delims=" %%a in ('dir /b /a-d') DO (
    set /a inc+=1
    Echo Ren: "%%a" "%~n1!inc!%%~xa"
    Ren "%%a" "%~n1!inc!%%~xa"
)
POPD

这是真实的脚本吗?为什么有一个
foldername
变量在赋值后不在任何地方使用?为什么在为
变量指定任何值之前(在
的第一个
循环中)会引用该变量?
foldername
bar
应该是同一个变量吗?嗨,脚本做了其他事情,为此我分配了它,为了方便发布,我去掉了其余的代码。文件夹名称提供文件夹的完整路径,其中bar仅提供父文件夹名称我的意思是,第一个
for
循环不应该是这样的:
for%%i in(%foldername%)do set bar=%%~ni
?您好,谢谢,重命名是一个符号名称,我尝试了该代码,它经过了重命名周期,并用自己的文件名重命名文件(任:“IMG_105511.JPG”“IMG_1055111.JPG”)因此,没有任何变化,但我使用的上面的一个在winows 7Look上再次起作用。重命名的文件末尾有一个额外的1,这是您要求的。是的,我同意,但希望文件名通过其文件夹名的名称命名。在这里,它所做的只是在现有文件名中添加一个序列号。谢谢,我不清楚这一点。请不要尝试他编辑了上面的代码。谢谢,代码工作得很好。再次感谢