[英]Why can't I use more than 20 files with my Perl script and Windows's SendTo?
[英]Sort selected files in sendTo
对文件列表进行排序的方法是什么,这些文件由批处理文件通过 sendTo-menu 处理,例如:
myDir
file_1.txt
file_3.txt
hello.world
foo.bar
如果我标记这些文件并通过 sendTo-link 调用批处理文件来处理这些文件,则文件的顺序似乎是随机的:
FOR %%A IN (%*) DO (set command=!command! %%A)
ECHO %command%
在某些情况下,这应该没有什么区别,但对于例如合并,它确实如此。
使用dir"*.sql ^| sort
的东西似乎不起作用,因此不考虑选定的文件名。
@echo off
setlocal
rem Sort args stored if 1st argument is /sort_args.
if "%~1" == "/sort_args" goto :sort_args
rem Store all arguments in a named variable.
set args=%*
rem Process sorted arguments.
for /f "delims=" %%A in ('cmd /c "%~f0" /sort_args') do (
echo %%A
)
exit /b 0
:sort_args
rem Abort if no arguments.
if not defined args exit /b 0
rem Sort arguments.
(for %%A in (%args%) do @echo %%A) | sort
exit /b 0
如果原始 arguments 没有/sort_args
作为参数,那么这会将 arguments 存储在args
中。 for /f
循环将再次运行此代码以对原始 arguments 进行sort
,并将 arguments 回显到for /f
循环进行处理。
如果需要,可以将/sort_args
更改为更独特的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.