Это то, что вы должны делать. Не используйте stringify
и < >
.
function arraysEqual(a, b) {
if (a === b) return true;
if (a == null || b == null) return false;
if (a.length != b.length) return false;
// If you don't care about the order of the elements inside
// the array, you should sort both arrays here.
for (var i = 0; i < a.length; ++i) {
if (a[i] !== b[i]) return false;
}
return true;
}
Например:
for %f in ("*.txt") do @echo %~nf
Вместо того, чтобы использовать DIR, мы используем команду FOR для просмотра списка и отправки каждого в ECHO. с опцией «~ n», вставленной в% f, чтобы расширение не отображалось.
Альтернативой является
FORFILES /c "cmd /c echo @fname"
Однако с этим я получаю кавычки вокруг каждого выходного имени файла, а это не то, что вам нужно.
for %f in ("*.txt") do @echo %%~nf
Да, это безумие, но это мучительная цена, которую мы платим за использование языка пакетных операций вместо любого другого языка (на ВСЕХ !). Я как алкоголик, обещая всем и каждому, что я никогда больше не напишу строку кода партии, а потом снова и снова застенчиво возвращаюсь, чтобы сделать это снова.
Чтобы добавить ответ Эврики, команда vanilla dir
не может достичь того, что вы ищете.
C:\Users\jacob>dir /?
Displays a list of files and subdirectories in a directory.
DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
[drive:][path][filename]
Specifies drive, directory, and/or files to list.
/A Displays files with specified attributes.
attributes D Directories R Read-only files
H Hidden files A Files ready for archiving
S System files I Not content indexed files
L Reparse Points - Prefix meaning not
/B Uses bare format (no heading information or summary).
/C Display the thousand separator in file sizes. This is the
default. Use /-C to disable display of separator.
/D Same as wide but files are list sorted by column.
/L Uses lowercase.
/N New long list format where filenames are on the far right.
/O List by files in sorted order.
sortorder N By name (alphabetic) S By size (smallest first)
E By extension (alphabetic) D By date/time (oldest first)
G Group directories first - Prefix to reverse order
/P Pauses after each screenful of information.
/Q Display the owner of the file.
/R Display alternate data streams of the file.
/S Displays files in specified directory and all subdirectories.
/T Controls which time field displayed or used for sorting
timefield C Creation
A Last Access
W Last Written
/W Uses wide list format.
/X This displays the short names generated for non-8dot3 file
names. The format is that of /N with the short name inserted
before the long name. If no short name is present, blanks are
displayed in its place.
/4 Displays four-digit years
Switches may be preset in the DIRCMD environment variable. Override
preset switches by prefixing any switch with - (hyphen)--for example, /-W.
Кроме того, в качестве альтернативы предложению использовать ("*.txt")
, если ваш список файлов включает в себя несколько расширений, вы можете либо исключить разные расширения , либо использовать *.*
, чтобы получить все файлы с .
в названии. Поиграйте с этим шаром, чтобы получить из него то, что вы хотите.
Это возможно с помощью команды dir
и цикла for
:
@echo off
for /F "delims= eol=" %%A IN ('dir /A-D /B') do echo %%~nA
Если вам нужен полный путь без расширения, попробуйте:
[ 111]Для однострочного cmd:
for /F "delims= eol=" %A IN ('dir /A-D /B') do echo %~nA
А для полного пути без расширения попробуйте:
for /F "delims= eol=" %A IN ('dir /A-D /B') do echo %~dpnA
Эти небольшие программы, цикл по всем файлам в папке, кроме каталогов, и echo
только имена файлов / полные пути без расширения.
В PowerShell будет намного проще:
(Get-ChildItem -File).BaseName
или
Get-ChildItem | ForEach-Object { В PowerShell будет намного проще:
[110] или
[111] Get-ChildItem
можно заменить псевдонимами ls
, [ 115] или dir
и ForEach-Object
можно заменить на %
Так что из cmd вы можете запустить любой из них для достижения цели
powershell -Com "(ls -File).BaseName"
powershell -Com (ls^ -File).BaseName
.BaseName }
Get-ChildItem
можно заменить псевдонимами ls
, [ 115] или dir
и ForEach-Object
можно заменить на %
Так что из cmd вы можете запустить любой из них для достижения цели
powershell -Com "(ls -File).BaseName"
powershell -Com (ls^ -File).BaseName