2016-07-20 3 views
-1

Я пытаюсь написать пакетный скрипт, который будет проверять, есть ли какой-либо файл, например, расширение .dll, и если файл выходит, то он должен создать новый файл с тем же именем но с расширением .txt.Автоматизация создания нового файла в папке Windows

так что у меня есть test_12345.dll файл, присутствующий в папке, то мой сценарий должен увидеть, если это выходит и создать пустой файл как test_12345.txt (в основном такое же имя с DLL-файл, но с другим расширением)

Может ли какой-нибудь эксперт помочь мне создать это с помощью пакетного скрипта.

С уважением Sushant

+0

'существует! = Выходит' ;-) Удачи. – shellter

+0

'bash' и' batch' - две разные вещи. – chepner

ответ

0

Это bash сценарий. :) Вы можете попробовать это в среде bash.

#!/bin/bash 
dirname=$1 
ext=$2 
[ $# -eq 0 ] && { echo "Usage: $0 <path> <ext>" ex: $0 /tmp/ dll ; exit 1; } 
find $dirname -type f -name "*.${ext}" | while read fname 
do 
name=$(dirname $fname)/$(basename $fname .${ext}) 
txtFile=$name.txt 
if [ ! -e "$txtFile" ] ; then 
    touch "$txtFile" 
fi 
done 
0

Это скрипт для летучей мыши, который делает то, что вам нужно. Сканирует все DLL-файлы в текущем каталоге, а затем изменяет расширение на .txt и создает (почти) пустой файл. Полноценная партия, без внешних инструментов.

@echo off 
SETLOCAL ENABLEDELAYEDEXPANSION 

for %%b in (*.dll) do (
set v=%%b 
set u=!v:.dll=.txt! 
echo. >!u! 
) 
0

предположив, что вы ищете Ф.О. в решения, это то, что вы хотите:

for %%F in ("\path\to\folder\*.dll") do (
    > "%%~dpnF.txt" break 
) 

Цикл for перечисляет все .dll файлы в данном месте \path\to\folder\ (удалить эту часть, если вы хотите обработать текущий рабочий каталог). %%~dpnF расширяет диск, путь и базовое имя (без расширения .dll) текущего итерационного элемента. Команда break ничего не делает в современных системах Windows (она существует только для обратной совместимости с MS-DOS) и не производит никакого вывода, поэтому я использую ее для создания пустых файлов .txt. echo. возвращает разрыв строки (поэтому файлы не пустые); кроме того, синтаксис . может привести к неожиданному поведению при некоторых обстоятельствах (синтаксис echo( выглядит странно, но он безопасен).

Смежные вопросы