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