自动在Windows文件夹中创建新文件

时间:2016-07-20 13:06:35

标签: batch-file cmd

我正在尝试编写一个批处理脚本,它将检查是否有任何文件,比如说.dll扩展名,如果文件退出则应该创建具有相同名称但扩展名为.txt的新文件。

所以说我在文件夹中有test_12345.dll文件然后我的脚本应该看看是否退出并创建一个空文件test_12345.txt(与.dll文件基本完全相同但扩展名不同)

有些专家可以帮我用批处理脚本创建它。

此致 Sushant

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

这是一个执行您需要的Windows bat脚本。 扫描当前目录中的所有DLL,然后将扩展名更改为.txt并创建(几乎)空文件。完整批次本机,不使用外部工具。

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION

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

答案 2 :(得分: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(看起来很奇怪,但它是安全的。)