Je voudrais vérifier si un fichier spécifique est vide dans un fichier Windows .bat. Voici mon script non fonctionnel:
set dir="C:\test" set file="%dir%\fff.txt" cd %dir% if %file%%~zi == 0 exit ftp -s:"%dir%\ftp.action" exit
3 Réponses :
Essayez ceci:
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("c:\boot.ini", ForReading)
Dim arrFileLines()
i = 0
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objFile.ReadLine
i = i + 1
Loop
objFile.Close
Quel est ce langage ? Cela ne semble pas être une ligne de commande Windows simple (.bat) ...
Non, mon erreur. Sa VBScript, vous pouvez faire un fichier .vbs et le coller.
ou essayez-le avec
@echo off set "dir=C:\temp" set "file=%dir%\a.txt" call :CheckEmpty "%file%" goto :eof :CheckEmpty if %~z1 == 0 exit ftp -s:"%dir%\ftp.action" goto :eof
Merci, ça marche! Je n'ai dû que retirer les citations doubles dans les commandes "Set", mais c'était parfait.
Les devis doubles sont nécessaires pour les noms de chemin / de fichiers avec des espaces ou des caractères spéciaux
Eh bien, les espaces ne causeront pas de problèmes pour la commande définir code>. De tous les caractères légaux dans les noms de fichiers, je pense que & code> et ^ code> pourrait causer des problèmes.
@Joey: Bien sûr, vous avez raison, mais les citations sont également bonnes pour éviter des problèmes avec des espaces invisibles à la fin de la ligne, avec des citations, ces espaces sont ignorés
Solution de lots à l'aide du fichier Comparer:
type nul > blank fc myfile blank > nul if errorlevel 1 echo myfile is not empty