История изменений
Исправление grem, (текущая версия) :
Если бы мне представили жесткий выбор из этих двух сортов, то я бы выбрал наверно powershell
В некоторых случаях PS, наверняка, даже удобнее. Пример для cmd (да, даже в .bat-файлах для cmd в данном примере удобнее) и bash - вывод коротких имён файлов (file 1.txt, file 2.txt) в подкаталоге в «mydir» (пусть он даже в виде переменной из внешнего цикла) текущей директории в .bat-файле для cmd:
@echo off
for %%F in ("mydir/*.txt") do echo %%~nF
file 1
file 2
для bash:
#~/bin/bash
IFS_init=$IFS
IFS=$'\n'
for FILE in mydir/*txt; do echo $(basename "$FILE" .txt); done
IFS=$IFS_init
file 1
file 2
basename
, то вывод будет таким:
mydir/file 1.txt
mydir/file 2.txt
echo $(basename "$FILE" .txt)
можно использовать такого монстра:
echo $(TMP=${FILE##*/};echo ${TMP%.*})
Исправление grem, :
Если бы мне представили жесткий выбор из этих двух сортов, то я бы выбрал наверно powershell
В некоторых случаях PS, наверняка, даже удобнее. Пример для cmd (да, даже в .bat-файлах для cmd в данном примере удобнее) и bash - вывод коротких имён файлов (file 1.txt, file 2.txt) в подкаталоге в «mydir» (пусть он даже в виде переменной из внешнего цикла) текущей директории в cmd:
@echo off
for %%F in ("mydir/*.txt") do echo %%~nF
file 1
file 2
для bash:
#~/bin/bash
IFS_init=$IFS
IFS=$'\n'
for FILE in mydir/*txt; do echo $(basename "$FILE" .txt); done
IFS=$IFS_init
file 1
file 2
basename
, то вывод будет таким:
mydir/file 1.txt
mydir/file 2.txt
echo $(basename "$FILE" .txt)
можно использовать такого монстра:
echo $(TMP=${FILE##*/};echo ${TMP%.*})
Исходная версия grem, :
Если бы мне представили жесткий выбор из этих двух сортов, то я бы выбрал наверно powershell
В некоторых случаях PS, наверняка, даже удобнее. Пример для cmd (да, даже в .bat-файлах для cmd в данном примере удобнее) и bash - вывод коротких имён файлов (file 1.txt, file 2.txt) в подкаталоге в «mydir» (пусть он даже в виде переменной из внешнего цикла) текущей директории в cmd:
@echo off
for %%F in ("mydir/*.txt") do echo %%~nF
file 1
file 2
для bash:
IFS_init=$IFS
IFS=$'\n'
for FILE in mydir/*txt; do echo $(basename "$FILE" .txt); done
IFS=$IFS_init
file 1
file 2
basename
, то вывод будет таким:
mydir/file 1.txt
mydir/file 2.txt
echo $(basename "$FILE" .txt)
можно использовать такого монстра:
echo $(TMP=${FILE##*/};echo ${TMP%.*})